一种高并发场景下即时通信消息传输方法技术

技术编号:23709933 阅读:35 留言:0更新日期:2020-04-08 12:06
本发明专利技术涉及一种高并发场景下即时通信消息传输方法,采用全新协议架构进行消息发送,针对消息,定义并设定传输协议版本号、标志位、同步序列号位、命令码位、消息长度位,并结合消息进行顺序组合,构成数据包,由IM客户端基于socket向IM服务器进行发送,IM服务器接收数据包,再基于设计架构协议对数据包进行解析,依次获得其中各个消息,直至最终获得消息,完成即时通讯的消息传输,具有报文体量小,报文传输效率高的优点。

A method of instant messaging transmission in high concurrency scenario

【技术实现步骤摘要】
一种高并发场景下即时通信消息传输方法
本专利技术涉及一种高并发场景下即时通信消息传输方法,属于即使通信

技术介绍
jabber是一个开放源码形式组织产生的网络实时通信协议,第一个公开版本于2000年5月发行,jabber已经由IETFXMPP协议(RFC3290)标准化;2001年成立的jabber软件基金会于2007年更名为XMPP标准基金会,此协议由JeremieMiller于1998年开始这个项目。Xmpp本为即时通讯量身定制的,但是该协议是基于xmlstanza,协议虽然灵活,因为xml的元素节点,报文数据包体量确比较大,传输过程中的I/O较大,弱网下的测试结果不太理想。随着网络用户的基数越来远大,现有的IM系统对消息流转的速度要求越来越高,一个数据包体量更小,结构清晰,容易被开源使用的协议,越来越成为市场的需求。传统基于jabber的协议体系已渐渐不符合IM系统的基础体系结构,报文体量的过大,导致弱网等特殊场景下的可靠性无法保证。
技术实现思路
本专利技术所要解决的技术问题是提供一种高并发场景下即时通信消息传输方法,采用全新协议架构进行消息发送,具有报文体量小,报文传输效率高的优点。本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种高并发场景下即时通信消息传输方法,用于实现IM客户端向IM服务器发送目标消息,包括如下步骤:步骤A.IM客户端定义命令码位,且命令码位占一个字节;根据预设消息场景代码对应关系,设定目标消息所对应的命令码位为目标消息所对应使用场景的代码,然后进入步骤B;步骤B.IM客户端定义消息长度位,且消息长度位占四个字节;设定目标消息所对应的消息长度位为目标消息的长度,然后进入步骤C;步骤C.IM客户端定义标志位,且标志位占一个字节;判断目标消息为同步消息或压缩消息,若为同步消息,则设定目标消息所对应的标志位为预设同步标志数值,并进入步骤D;若为压缩消息,则设定目标消息所对应的标志位为预设压缩标志数值;然后进入步骤E;步骤D.IM客户端定义同步序列号位,且同步序列号位占四个字节;基于目标消息为同步消息,设定目标消息所对应同步序列号位为预设同步序列号数值,然后进入步骤F;步骤E.IM客户端针对目标消息所对应的标志位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包,并进入步骤G;步骤F.IM客户端针对目标消息所对应的标志位、同步序列号位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包,并进入步骤G;步骤G.IM客户端将目标数据包发送至IM服务器,然后进入步骤H;步骤H.IM服务器针对目标数据包进行解析、获得目标消息。作为本专利技术的一种优选技术方案:所述步骤E中,IM客户端针对预设传输协议版本号,目标消息所对应的标志位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包;所述步骤F中,IM客户端针对预设传输协议版本号,目标消息所对应的标志位、同步序列号位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包;其中,预设传输协议版本号占一个字节。作为本专利技术的一种优选技术方案,所述步骤G包括如下过程:步骤G1.IM客户端与IM服务器通过socket网络编程技术建立tcp连接,然后进入步骤G2;步骤G2.IM客户端将目标数据包发送到其与IM服务器之间的SocketChannel网络通道中,然后进入步骤G3;步骤G3.IM服务器针对SocketChannel网络通道进行监听,并从其中获取目标数据包,然后进入步骤H。作为本专利技术的一种优选技术方案,所述步骤H包括如下过程:步骤H1.IM服务器检测目标数据包中是否包含传输协议版本号和标志位,是则进入步骤H2;否则判定该目标数据包不符合协议,丢弃该目标数据包;步骤H2.IM服务器先读取目标数据包中的第一个字节,即传输协议版本号,接着读取目标数据包中的第二个字节,即标志位,然后进入步骤H3;步骤H3.若标志位为预设同步标志数值,则IM服务器读取目标数据包中的第三至六字节,即同步序列号位,并进入步骤H4;若标志位为预设压缩标志数值,则IM服务器先读取目标数据包中的第三字节,即命令码位,接着读取目标数据包中的第四至七字节,即消息长度位,然后进入步骤H5;步骤H4.IM服务器先读取目标数据包中的第七字节,即命令码位,接着读取目标数据包中的第八至十一字节,即消息长度位,然后进入步骤H5;步骤H5.IM服务器读取目标数据包中最后、满足消息长度位数值的数据,即为目标消息。本专利技术所要解决的技术问题是提供一种计算机设备,用于执行所设计高并发场景下即时通信消息传输方法中的步骤A至步骤G,获得更加高效的报文传输效率。本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种计算机设备,包括存储器、处理器,以及存储在存储器上、并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序、实现权利要求1至4中任一项所述方法中的步骤A至步骤G。本专利技术所要解决的技术问题是提供一种服务器可读存储介质,用于执行所设计高并发场景下即时通信消息传输方法中的步骤H,获得更加高效的报文解析效率。本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种服务器可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时、实现权利要求1至4中任一项所述方法中的步骤H。本专利技术所述一种高并发场景下即时通信消息传输方法,采用以上技术方案与现有技术相比,具有以下技术效果:本专利技术所设计高并发场景下即时通信消息传输方法,采用全新协议架构进行消息发送,针对消息,定义并设定传输协议版本号、标志位、同步序列号位、命令码位、消息长度位,并结合消息进行顺序组合,构成数据包,由IM客户端基于socket向IM服务器进行发送,IM服务器接收数据包,再基于设计架构协议对数据包进行解析,依次获得其中各个消息,直至最终获得消息,完成即时通讯的消息传输,具有报文体量小,报文传输效率高的优点。附图说明图1是本专利技术设计高并发场景下即时通信消息传输方法的应用效果示意图。具体实施方式下面结合说明书附图对本专利技术的具体实施方式作进一步详细的说明。本专利技术设计了一种高并发场景下即时通信消息传输方法,用于实现IM客户端向IM服务器发送目标消息,实际应用当中,具体包括如下步骤A至步骤H。步骤A.IM客户端定义命令码位,且命令码位占一个字节;根据预设消息场景代码对应关系,设定目标消息所对应的命令码位为目标消息所对应使用场景的代码,然后进入步骤B。实际应用当中,设计预设消息场景代码对应关系如下。1、握手请求:12、握手响应:23、鉴权请求:34、鉴权响应:45、登录请求:56、登录响应:67、进群请求:78、进群响应:89、进群通知:9...

【技术保护点】
1.一种高并发场景下即时通信消息传输方法,用于实现IM客户端向IM服务器发送目标消息,其特征在于,包括如下步骤:/n步骤A. IM客户端定义命令码位,且命令码位占一个字节;根据预设消息场景代码对应关系,设定目标消息所对应的命令码位为目标消息所对应使用场景的代码,然后进入步骤B;/n步骤B. IM客户端定义消息长度位,且消息长度位占四个字节;设定目标消息所对应的消息长度位为目标消息的长度,然后进入步骤C;/n步骤C. IM客户端定义标志位,且标志位占一个字节;判断目标消息为同步消息或压缩消息,若为同步消息,则设定目标消息所对应的标志位为预设同步标志数值,并进入步骤D;若为压缩消息,则设定目标消息所对应的标志位为预设压缩标志数值;然后进入步骤E;/n步骤D. IM客户端定义同步序列号位,且同步序列号位占四个字节;基于目标消息为同步消息,设定目标消息所对应同步序列号位为预设同步序列号数值,然后进入步骤F;/n步骤E. IM客户端针对目标消息所对应的标志位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包,并进入步骤G;/n步骤F. IM客户端针对目标消息所对应的标志位、同步序列号位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包,并进入步骤G;/n步骤G. IM客户端将目标数据包发送至IM服务器,然后进入步骤H;/n步骤H. IM服务器针对目标数据包进行解析、获得目标消息。/n...

【技术特征摘要】
1.一种高并发场景下即时通信消息传输方法,用于实现IM客户端向IM服务器发送目标消息,其特征在于,包括如下步骤:
步骤A.IM客户端定义命令码位,且命令码位占一个字节;根据预设消息场景代码对应关系,设定目标消息所对应的命令码位为目标消息所对应使用场景的代码,然后进入步骤B;
步骤B.IM客户端定义消息长度位,且消息长度位占四个字节;设定目标消息所对应的消息长度位为目标消息的长度,然后进入步骤C;
步骤C.IM客户端定义标志位,且标志位占一个字节;判断目标消息为同步消息或压缩消息,若为同步消息,则设定目标消息所对应的标志位为预设同步标志数值,并进入步骤D;若为压缩消息,则设定目标消息所对应的标志位为预设压缩标志数值;然后进入步骤E;
步骤D.IM客户端定义同步序列号位,且同步序列号位占四个字节;基于目标消息为同步消息,设定目标消息所对应同步序列号位为预设同步序列号数值,然后进入步骤F;
步骤E.IM客户端针对目标消息所对应的标志位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包,并进入步骤G;
步骤F.IM客户端针对目标消息所对应的标志位、同步序列号位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包,并进入步骤G;
步骤G.IM客户端将目标数据包发送至IM服务器,然后进入步骤H;
步骤H.IM服务器针对目标数据包进行解析、获得目标消息。


2.根据权利要求1所述一种高并发场景下即时通信消息传输方法,其特征在于:在一个实施方式中,所述步骤E中,IM客户端针对预设传输协议版本号,目标消息所对应的标志位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包;
所述步骤F中,IM客户端针对预设传输协议版本号,目标消息所对应的标志位、同步序列号位、命令码位、消息长度位,以及目标消息进行顺序组合,构成目标数据包;
其中,预设传输协议版本号占一个字节。


3.根据权利要求1或2所述一种高...

【专利技术属性】
技术研发人员:王冲孙军洪
申请(专利权)人:江苏艾佳家居用品有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1