分享

iOS 即时通信的聊天协议

 昵称70680357 2020-06-30

1.首先我们以实现方式来切入,基本上有以下四种实现方式:

1)基于Scoket原生:代表框架 CocoaAsyncSocket。
2)基于WebScoket:代表框架 SocketRocket。
3)基于MQTT:代表框架 MQTTKit。
4)基于XMPP:代表框架 XMPPFramework

当然,以上四种方式我们都可以不使用第三方框架,直接基于OS底层Scoket去实现我们的自定义封装。下面我会给出一个基于Scoket原生而不使用框架的例子,供大家参考一下。

首先需要搞清楚的是,其中MQTT和XMPP为聊天协议,它们是最上层的协议,而WebScoket是传输通讯协议,它是基于Socket封装的一个协议。而通常我们所说的腾讯IM的私有协议,就是基于WebScoket或者Scoket原生进行封装的一个聊天协议。

具体这3种聊天协议的对比优劣如下:

1.XMPP

语言 方法
9800 1mjPAT85qY
1LPz3 8个稳赚的女性创业项目
1844 2005.08.14 21-35-01

优点:协议开源,可拓展性强,开发者接入方便
缺点:XML表现力弱,有太多冗余信息,流量大,实际使用有大量天坑

2.MQTT

优点:协议简单,流量少,订阅 + 推送模式,
缺点:他并不是专门为IM设计的协议,多使用于推送

3.私有协议

优点:市面上主流的IM APP都是使用的私有协议。高效,节约流量(一般使用二进制协议),安全性高,难以破解
缺点:开发初期没有样例参考,开发难度大

总结:

所以说到底,iOS要做一个真正的IM产品,一般都是基于Scoket或者WebScoket等,再之上加上一些私有协议来保证的。

 

by:liming

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多