XMPP与环信

作者: Ming普 | 来源:发表于2016-07-21 18:55 被阅读52次

XMPP --> 环信
1.XMPP是网络层基于TCP协议,数据层基于XML协议的即时通讯协议。所以要实现通讯的话,就要跟TCP一样,遵循3次握手,建立连接,持有一个长连接,连接期间发送消息,消息的格式就是XMPP,是一个流,可以分段发,别人也可以分段的将消息给我,在stream开始,/stream结束。

弊端

2.网络层: TCP是一种长连接,因为在这个IP不固定的时代,用户锁屏,home,切换其他APP等都会导致自己的TCP连接断开,所以每次都需要再一次重新建立长连接。可以通过心跳轮循(每五秒钟向服务器问一次,每次通过短连接询问,可以用http的GET或者POST)的方式,服务器会告诉你是否有消息,如果有再用XMPP方式请求,请求完毕之后,再把TCP断开,继续心跳轮循。

3.数据层:XML数据体积比较大有冗余,造成不必要的流量浪费,但是没有办法解决。

所以在工作的时候,我们通常用环信来即时通讯,同时环信还集成了第三方登陆,实现登陆功能。

TCP三次握手协议

TCP三次握手

三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

连接建立后,客户端和服务器就可以开始进行数据传输了。

相关文章

  • XMPP与环信

    XMPP --> 环信1.XMPP是网络层基于TCP协议,数据层基于XML协议的即时通讯协议。所以要实现通讯的话,...

  • IOS 问题合集 面试

    是否使用过XMPP,XMPP的实现? 环信是一个即时通信的服务提供商 环信使用的是XMPP协议,它是再XMPP的基...

  • 环信(XMPP)

    一、即时通讯 什么是即时通讯? 即时通讯,又称实时通讯 即时通信(Instant Messaging,简称IM)是...

  • iOS-进阶整理10 - 即时通信1 XMPP openfire

    即时通信(Instant Messaging),就是扣扣,微信它有多种实现方式,如XMPP、环信、融云等。XMPP...

  • 03-即时通讯 环信集成

    环信 环信是在XMPP的基础上进行的二次开发 环信在网络上传输的数据是XML环信 是否使用过环信,简单说一下环信的...

  • XMPP 与 环信的实现原理

    XMPP The Extensible Messaging and PresenceProtocol(可扩展通讯协...

  • XMPP 与 环信的实现原理

    XMPP The Extensible Messaging and PresenceProtocol(可扩展通讯协...

  • 环信

    环信环信是一个第三方平台,提供即时通讯服务环信是在XMPP的基础上进行的二次开发环信在网络上传输的是xml使用环信...

  • iOS基础--即时通讯的简单总结

    即时通讯是目前最为流行的通讯方式. 即时通讯的多种实现方式: XMPP,环信,融云. XMPP基于XML的点对点的...

  • 消息推送oneToOne

    今天我将为大家介绍常用的几种消息推送:JMS,MQTT,XMPP,WebSocket,AMQP,友盟,环信。 首先...

网友评论

    本文标题:XMPP与环信

    本文链接:https://www.haomeiwen.com/subject/glbbjttx.html