- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 2020年高考真题+高考模拟题 专项版解析汇编 语文15个专题汇总(教师版全套资料).pdf
- 2020年高考真题+高考模拟题 专项版解析汇编 语文15个专题汇总(学生版全套资料).pdf
- 2020年高考真题+高考模拟题 专项版解析汇编 政治16个专题汇总(教师版全套资料).pdf
- 2020年高考真题+高考模拟题 专项版解析汇编 政治16个专题汇总(学生版全套资料).pdf
- 2020年科技公司起名大全.pdf
- 2020年秋季新人教版部编本六年级语文上册教学计划和教学进度.pdf
- 2020年十大雅思写作题目汇总.docx
- 2020疫情期间感人故事作文600字5篇-新冠600疫情期间的感人故事.pdf
- 2020中考:世界近现代史重要简答题汇总(20210213141300).pdf
- 2020中考作文写作指导病文修改升级例析(11页).pdf
最近下载
- 2024年秋人教版七年级英语上册全册课件:Unit 5.pptx VIP
- HIOKI日置 RM3545电阻计使用说明书.pdf
- 洛阳市20 15届高三一练理科a卷成绩yiqi.xls
- 2024年秋人教版七年级英语上册全册课件:Unit 4.pptx VIP
- 2024全国中考语文试题分类汇编:记叙文阅读.pdf VIP
- 2024新人教版初中七年级数学上册第六章几何图形初步大单元整体教学设计.docx
- 【美术课件】《水果皇后—山竹》(1).pptx
- Unit 1 You and Me (第1课时) Section A 1a-1d 课件 人教版(2024)七年级上册.pptx
- Unit 1 You and Me Section A How do you greet people 课件 人教版(2024)英语七年级上册.ppt
- 机械结算单模板.docx
文档评论(0)