本发明提供了一种基于XMPP客户端与消息服务器的快速重连方法、终端和消息服务器,其中,快速重连方法包括:当检测到所述客户端登录所述消息服务器时,所述消息服务器生成与所述客户端对应的当前会话ID,并发送至所述客户端进行存储;当所述客户端与所述消息服务器之间的连接断开后,所述消息服务器存储所述当前会话ID对应的目标会话信息;所述客户端将存储的所述当前会话ID发送至所述消息服务器,以供所述消息服务器根据所述当前会话ID恢复出所述目标会话信息。通过发明的技术方案,客户端与消息服务器断链后,客户端只需发送快速重连报文至消息服务器就能恢复上次断链的会话,无需重新登录,节省交互步骤、时间和资源,提升了用户体验。
技术领域
本发明涉及终端技术领域,具体而言,涉及一种基于XMPP客户端与消息服务器的快速重连方法、一种终端和一种消息服务器。
说明
图1示出了根据本发明的实施例的基于XMPP客户端与消息服务器的快速重连方法的流程图;
图2示出了根据本发明的实施例的终端的框图;
图3示出了根据本发明的实施例的消息服务器的框图;
图4示出了根据本发明的实施例的基于XMPP客户端与消息服务器的快速重连方法的具体流程图。
下面结合图4详细说明本发明的技术方案。
如图4所示,基于XMPP客户端与消息服务器的快速重连方法的具体包括:
步骤402,客户端登录时,服务器生成当前的会话ID,并响应给客户端。其中,会话ID可以通过以下两种接口方式响应给客户端。
I)接口一:使用特定接口获取当前会话ID ;
客户端请求:
<iq id = ’uid: 5328121’type = ’get’ xmlns = ’ jabber: client’>
〈sess1n xmlns = ' urn:1etf:params: xml:ns:xmpp-sess1n' />
</iq>
服务器响应:
<iq type = 'result' to = 'xxxiserver/aa' xmlns = 'jabber:client' id=,uid:5328121,>
〈sess1n xmlns = ' urn:1etf:params: xml:ns:xmpp-sess1n' id = ' 888888' />
</iq>
2)接口二:使用已有某一登录报文获取当前会话ID ;
客户端请求:
<iq type = ’ set,id = ’ purple7478f341,>
〈sess1n xmlns = ' urn:1etf:params: xml:ns:xmpp-sess1n' />
</iq>
服务器响应:
<iq type = ’ result’ id = ’ purple7478f341’ >
〈sess1n xmlns = ' urn:1etf:params: xml:ns:xmpp-sess1n' id = ' 888888' />
</iq>
步骤404,客户端断链时消息服务器保存会话信息。具体地,客户端断链时,服务器保存会话信息,以会话ID为关键字,等待客户端来重连。
步骤406,客户端与服务器断链后,将登录时获取的会话ID发送给服务器,服务器收到会话ID,恢复会话信息。