• iOS 即时通信的聊天协议


    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

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

    2.MQTT

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

    3.私有协议

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

    总结:

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

    by:liming

  • 相关阅读:
    Python写出LSTM-RNN的代码
    TensorFlow 实现 RNN 入门教程
    RNN与应用案例:注意力模型与机器翻译
    RNN入门
    内积(又名点积)
    词袋模型(BOW, bag of words)
    softmax
    Dropout
    随机梯度下降法
    L1范式和L2范式
  • 原文地址:https://www.cnblogs.com/widgetbox/p/13214885.html
Copyright © 2020-2023  润新知