iOS端IM开发从入门到填坑.pdfVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IM 的实现方式 拿来主义,使用第三方 IM 服务 IM 的第三方服务商国内有很多,底层协议基本上都是基于 TCP 的,类似有网易云信、 环信、融云、极光 IM 、LeanCloud 、云通讯 IM (腾讯)、云旺 IM (阿里)、容联云、 小能、美洽等等,技术也相对比较成熟,提供后台管理和定制化的 UI ,拿来主义,半 小时集成。 缺点也很明显:定制化程度太高,需要二次开发,很多东西我们不可控, 关键是太贵 了。如果 IM 对于 APP 只是一个辅助功能,如客服系统、消息推送等,也基本够用。 自己动手,切合业务自己实现 几乎所有互联网 IM 产品都用服务器中转方式进行消息传输。自己去实现也会面临许 多选择: 1、传输协议的选择: TCP 还是 UDP ? 2 、选择哪种聊天协议进行开发: MQTT 、XMPP 、基于 Socket 原生或 WebSocket 的私有协议? 3 、传输数据的格式:用 JSON 、还是 XML 、还是谷歌推出的 ProtocolBuffer ? 4 、我们还有一些细节问题需要考虑,例如 TCP 的长连接如何保持,心跳机制, Qos 机制,重连机制等等。另外,还有一些安全问题需要考虑。 一、传输协议的选择 移动端 IM 的传输协议选型: TCP 还是 UDP ? TCP :基于连接的可靠协议的全双工的可靠信道,有流量控制、差错控制等,占用系 统资源较多,传输效率相对低 UDP :基于无连接的不可靠协议,没有足够的控制手段,传输效率高,有丢包问题 TCP 和 UDP 的最完整的区别 /Li_Ning_/article/details 基于 UDP 协议开发成本较高,容易各种丢包或乱序,一般小公司或技术不成熟或即时 性要求不高的公司,多用 TCP 开发。 QQ-IM 的私有协议:登录等安全性操作使用 TCP 协议,好友之间发消息主要使用 UDP 协议,内网传输文件采用了 P2P 技术,另外腾讯还用了自己的私有协议,来保证 传输的可靠性。 二、聊天协议的选择 首先我们以实现方式来切入,基本上有以下四种实现方式: 基于 Socket 原生: 代表框架 CocoaAsyncSocket 。 基于 WebSocket :代表框架 SocketRocket 。 基于 MQTT :代表框架 MQTTKit 。 基于 XMPP :代表框架 XMPPFramework 。 以上四种方式都可以不使用第三方框架,直接基于 OS 底层 Socket 去实现我们的自定 义封装。其中 MQTT 和 XMPP 为聊天协议,是最上层的协议,而 WebSocket 是传输 通讯协议,它是基于 Socket 封装的一个协议。而上面所说的 QQ-IM 的私有协议,就 是基于 WebSocket 或者 Socket 原生进行封装的一个聊天协议。 协议优劣对比 总之, iOS 端要做一个真正的 IM 产品,一般都是基于 Socket 或 WebSocket 等,在 之上加上一些私有协议来保证的。 三、实现一个简单的 IM 1 。Socket 概述 Socket 其实并不是一个协议, Socket 通常也称作”套接字”,是对 TCP/IP 或者 UDP/IP 协议封装的一组编程接口,用于描述 IP 地址和端口,使用 socket 实现进程之 间的通信(跨网络的)。它工作在 O

文档评论(0)

优质文档提供者 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档