iOS下XMPP开发之XMPP开发环境配置(一)MySQL安装配置

2023-10-27

1.即时通讯技术简介

即时通讯技术(IM -- Instant Messaging)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容


有许多的IM系统,如AOL、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议


协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即时通讯协议(PRIM)及基于XML且开放的可扩展通讯和表示协议(XMPP)协议(常称为 Jabber 协议)


人们多次努力,试图统一各大主要IM供应商的标准(AOL、Yahoo 及 Microsoft),但无一成功,且每一种IM仍然继续使用自己所拥有的协议

2.XMPP起源

XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。最初,XMPP作为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。
XMPP前身是Jabber(1998年),是一个开源组织定义的网络即时通信协议


XMPP是一个分散型通信网络,这意味着,只要网络基础设施允许,任何XMPP用户都可以向其他任何XMPP用户传递消息。多个XMPP服务器也可以通过一个专门的“服务器-服务器”协议相互通信,提供了创建分散型社交网络和协作框架的可能性


尽管XMPP的出现是为了满足“个人-个人”即时消息传递的要求,但它完全不必局限于此任务

3.XMPP概述

XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的。可以通过发送扩展的信息来处理用户的需求,以及在 XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配置好的系统添加功能
XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮
XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性
XMPP的扩展协议Jingle使得其支持语音和视频,目前iOS尚不支持
XMPP的官方文档是RFC 3920
XMPP协议曾经是Google力推的即时通信协议,其代表作品是GTalk

4.XMPP定义

XMPP:The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议)


XMPP可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议


XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同

5.XMPP的基本结构

XMPP是一个典型的C/S架构,而不是像大多数即时通讯软件一样,使用P2P客户端到客户端的架构,也就是说在大多数情况下,当两个客户端进行通讯时, 他们的消息都是通过服务器传递的。采用这种架构,主要是为了简化客户端,将大多数工作放在服务器端进行


XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生


服务器同时承担了客户端信息记录,连接管理和信息的路由功能
网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等


基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML流

6.搭建xmpp开发环境

6.1下载 :mysql-5.6.12-osx10.7-x86_64.dmg
6.2点击安装

出现安装界面,需要安装的有有下面3个,其中安装第3个文件是为了能够开机就自启动MySQL,这个可选(安装时一律下一步即可)
安装完第一个的时候再app里面看不到MySQL,当安装完第二个文件后就可以看到MySQL了
此时打开MySQL,点击启动
这就是启动后的界面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS下XMPP开发之XMPP开发环境配置(一)MySQL安装配置 的相关文章

  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后
  • 当 isUserInteractionEnabled false 时,SKSpriteNode 不会让触摸通过

    我正在尝试在 SpriteKit 中创建一个覆盖层 方法是使用SKSpriteNode 但是 我希望触摸穿过覆盖层 所以我设置isUserInteractionEnabled为假 然而 当我这样做时 SKSpriteNode似乎仍然吸收所有
  • 无法在 ios 应用程序中通过 googlecast 正确投射视频

    我正在开发一个基于 AVPlayer 的自定义视频播放器项目 尝试整合谷歌演员 我已经根据谷歌图进行了集成 https codelabs developers google com codelabs cast videos ios http
  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • 在 iOS 应用程序中拨打电话

    我有一些代码尝试在应用程序中进行调用 但它似乎不起作用 UIApplication myApp UIApplication sharedApplication NSString theCall NSString stringWithForm
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • UIViewController 不旋转到横向

    在许多情况下需要旋转控制器但不起作用 现在我遇到了相反的问题 它正在旋转 我想禁用它 在那个 ViewController 中我有这个 BOOL shouldAutorotateToInterfaceOrientation UIInterf
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • 根据内容自动更改单元格高度 - Swift

    在 Swift 中使用 UITableView 有人可以帮我根据标签 图片和描述自动更改单元格的高度吗 所有信息都正确传递 我只需要帮助格式化它 我尝试使用调整它cell frame size height 但这没有效果 我可以更改故事板中
  • 如何使用 IOS 12 在 UITableViewCell 中正确添加 UICollectionView

    由于某些原因 在使用 Xcode 10 beta 时 我无法正确显示 tableview 单元格内集合中的某些项目 在过去的四天里我尝试了我所知道的一切 我做了一个小项目样本来看看我的问题是什么 如果有人想在本地运行完整代码 请参见此处 h
  • 所有 RestKit 项目在归档时都无法构建

    这个问题涉及RESTKIT 0 9 x 如果您是 Restkit 新手 请考虑使用较新的版本0 10 x https github com RestKit RestKit tree v0 10 1 branch 我最近继承了一个项目 使用r
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为

随机推荐

  • 直链文件服务器,山寨云直链 服务器拒绝

    山寨云直链 服务器拒绝 内容精选 换一换 在您申请了云耀云服务器后 可以通过管理控制台查看和管理您的云耀云服务器 本节介绍如何查看云耀云服务器的详细配置 包括云耀云服务器名称 镜像信息 系统盘 数据盘 安全组 弹性公网IP等信息 登录管理控
  • React 跳转路由传参, 页面请求两次

    问题 路由跳转时 页面发出了两次一模一样的网络请求 但是当前页刷新时 仅发出一次请求 问题条件说明 在跳转路由上带参数 且参数中包含中文 问题分析 浏览器对中文参数进行转码导致组件加载两次 解决方案 在传递参数时 对参数用encodeURI
  • Mysql中的redo log和undo log

    redo log 日志 gt 持久性 重做日志 记录的是事务提交时数据页的物理修改 是用来实现事务的持久性 主要有重做日志缓冲 redo log buffer 以及重做日志文件 redo log file 组成 前者在内存 后者在磁盘 当事
  • Flutter的AspectRatio控件实现视频播放、图片播放按照长宽比缩放

    AspectRatio控件的作用 AspectRatio小部件用于调整其子级小部件的宽高比 它将其子级小部件的宽度调整为给定的宽度 并根据宽度计算出相应的高度 以保持指定的宽高比 使用场景 调整容器的宽高比 当您希望在布局中使用容器或小部件
  • TCP/IP协议思维导图

    期末考试时候自己用Xmind写的 我们的教材是谢希仁 计算机网络 第六版
  • PHP使用curl抓取网站数据,包括IP伪造和来源伪装等实现方法

    1 伪造客户端IP地址 伪造访问referer 一般情况下这就可以访问到数据了 curl setopt curl CURLOPT HTTPHEADER X FORWARDED FOR 110 85 108 185 CLIENT IP 110
  • js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示

    题目中问题一拆为二 文字在超出长度时 如何实现用省略号代替 超长长度的文字在省略显示后 如何在鼠标悬停时 以悬浮框的形式显示出全部信息 文字在超出长度时 如何实现用省略号代替 用CSS实现超长字段用省略号表示的方法 所有浏览器兼容 html
  • 环境配置:Win10 - VSCode - MinGW64 - OpenCV 4.5.0 - ZBar 0.23.92

    环境配置 Win10 VSCode MinGW64 OpenCV 4 5 0 ZBar 0 23 92 前言 1 VSCode 下载VSCode 安装 C C 插件 项目配置 2 MinGW 选择MinGW的原因 MinGW下载 开始安装
  • 删除了文件,磁盘空间没有释放,怎么办

    find home type f size 1024M 先找出大于1G的文件 再lsof grep file看文件被哪个进程占用 再kill掉进程 再删除文件
  • 【论文导读】Causal Machine Learning:A Survey and Open Problems

    最新的arXiv上的综述 迅速过一遍 2022 7 13 历史 C1已看完 三页 ML面临挑战 1 当数据分布发生变化时 泛化性能大幅下降 2 缺乏对生成模型样本的精细控制 3 有偏见的预测加强了对某些子群体的不公平歧视 4 过度抽象和与问
  • 怎么往服务器里拷贝文件,怎么往云服务器上拷贝文件

    怎么往云服务器上拷贝文件 内容精选 换一换 无法直接从云备份控制台查看备份中的数据 您可以通过以下几种方式进行查看 云服务器备份使用云服务器备份创建镜像后 再使用镜像创建云服务器 登录云服务器 查看服务器中的数据 云硬盘备份使用云硬盘备份创
  • mysql5.7递归查询

    MySQL 5 7支持递归查询 这种查询方式可以在一个表中查找具有父子关系的数据 递归查询通常使用WITH RECURSIVE语句进行构造 这个语句使用两个部分 递归部分和终止部分 递归部分定义了递归查询的开始条件和递归关系 而终止部分定义
  • LVGL使用记 - 数据更新显示

    介绍一下界面数据显示方法 关键API Set a an event handler function for an object Used by the user to react on event which happens with t
  • 数字藏品源码APP商城开发团队

    数字藏品源码APP商城开发团队 数字藏品商城软件开发 数字藏品分销模式开发 数字藏品交易平台开发 数字藏品现成源码软件定制 微信分销返利制度开发 NFT数字藏品平台开发定制 数字藏品系统多少钱 在全世界范围来看 数字藏品的外延更大 通常被称
  • flea-db使用之SQL模板接入

    SQL模板接入 引言 1 准备工作 2 使用讲解 2 1 SQL模板配置 2 2 新增数据 2 3 查询数据 2 4 更新数据 2 5 删除数据 2 6 分页查询 2 7 单个结果查询 计数 2 8 单个结果查询 总和 引言 本篇将要演示
  • 2017-7-28 2-8 编写函数rightrot(x,n),该函数返回将x循环右移(即从最右端移出的位将从最左端移入)n位后所得到的值

    include
  • Prefix Flip【小模拟】

    题目链接CF 1382 C2 题意 有两个字符串 现在我们要让第一个字符串变成第二个字符串 只允许使用2N次操作 问操作 每次操作是选前缀x个 然后首先前缀x全体异或1 然后字符串翻转 于是 很明显的 我们可以按次数每次维护最后一个字符串
  • Python 字符串与二进制串的相互转换

    一个问题 在Python中 如何将一个字符串转换为相应的二进制串 01形式表示 并且能够将这个二进制串再转换回原来的字符串 一个简单版本 def encode s return join bin ord c replace 0b for c
  • 企业实施数字工厂管理系统应对这几个流程进行优化

    在当今快速发展的商业环境中 企业需要不断地提高管理水平以保持竞争优势 数字工厂系统解决方案作为一种先进的信息化管理系统 可以帮助企业在多个方面实现管理改进 本文将探讨数字工厂管理系统对企业管理的九个方面的影响和作用 一 企业信息化管理方面
  • iOS下XMPP开发之XMPP开发环境配置(一)MySQL安装配置

    1 即时通讯技术简介 即时通讯技术 IM Instant Messaging 支持用户在线实时交谈 如果要发送一条信息 用户需要打开一个小窗口 以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容 有许多的IM系统 如AOL Yah