通信方法、装置、服务器及存储介质制造方法及图纸

技术编号:29931827 阅读:12 留言:0更新日期:2021-09-04 19:01
本申请提供一种通信方法、装置、服务器及存储介质,其中,该方法通过服务器集群中服务器i监听预设消息队列是否接收到消息,该队列的标识为服务器i的标识,该消息包括目标客户端的用户标识,服务器i与目标客户端基于预设通信协议进行通信,该预设通信协议允许目标客户端与服务器i之间建立持久性连接,在监听接收到信息时,服务器i根据服务器i的标识和目标客户端的用户标识,确定目标客户端与服务器i之间建立持久性连接的账号,进而,将该账号发送至目标客户端,以使目标客户端根据上述账号与服务器i进行业务处理,解决了集群服务器需要进行扩缩容时服务器与客户端通信的问题,在系统自动扩缩容时能很好地保持服务器与客户端的双向通信。端的双向通信。端的双向通信。

【技术实现步骤摘要】
通信方法、装置、服务器及存储介质


[0001]本申请涉及通信
,尤其涉及一种通信方法、装置、服务器及存储介质。

技术介绍

[0002]随着通信技术的快速发展,人们之间的沟通越来越多样化,存在许多多人通信场景,现有用户一般通过建立持久性连接的协议实现服务端与客户端的通讯,例如通过websocket协议实现服务端与客户端的通讯。
[0003]目前,客户端与服务端进行连接,保持双向通信,服务端通常以消息队列消费者的方式从订阅的消息队列中接收消息生产者发布的消息,并将接收的消息推送给客户端。
[0004]然而,上述方案只能在进行单机部署或者固定数量客户端进行部署,当集群服务器需要进行扩缩容时需要重新进行集群服务规划及部署时会影响通信,上述方案无法满足动态扩缩容项目架构的要求。

技术实现思路

[0005]为解决现有技术中存在的问题,本申请提供一种通信方法、装置、服务器及存储介质。
[0006]第一方面,本申请实施例提供一种通信方法,该方法应用于服务器集群中的服务器i,所述服务器i与目标客户端之间基于预设通信协议进行通信,所述预设通信协议允许所述目标客户端与所述服务器i之间建立持久性连接,其中,i=1,2,
……
,n,n等于所述服务器集群中服务器的数量,该方法包括如下步骤:
[0007]在监听到预设消息队列接收到消息时,所述预设消息队列的标识为所述服务器i的标识,所述消息包括所述目标客户端的用户标识,根据所述服务器i的标识和所述目标客户端的用户标识,确定所述目标客户端与所述服务器i之间建立持久性连接的账号;
[0008]将所述账号发送至所述目标客户端,以使所述目标客户端根据所述账号与所述服务器i进行业务处理。
[0009]在一种可能的实现方式中,所述根据所述服务器i的标识和所述目标客户端的用户标识,确定所述目标客户端与所述服务器i之间建立持久性连接的账号,包括:
[0010]在预设数据库中获取预存的服务器i的标识和已连接客户端的用户标识,与已连接客户端与服务器i通过所述预设通信协议建立持久性连接的账号的对应关系;
[0011]根据所述对应关系,确定所述服务器i的标识和所述目标客户端的用户标识对应的所述目标客户端与所述服务器i之间建立持久性连接的账号。
[0012]在一种可能的实现方式中,所述方法还包括:
[0013]接收所述已连接客户端发送的连接建立持久性服务的请求;
[0014]根据所述请求返回预设密钥至所述已连接客户端,以使所述已连接客户端根据所述预设密钥对所述已连接客户端的用户标识进行加密,并通过与所述服务器i建立的持久性连接的账号,将加密后的已连接客户端的用户标识发送至所述服务器i;
[0015]对所述加密后的已连接客户端的用户标识进行解密;
[0016]若解密成功,则将所述服务器i的标识和所述已连接客户端的用户标识,与所述已连接客户端与所述服务器i建立的持久性连接的账号的对应关系保存在所述预设数据库中。
[0017]在一种可能的实现方式中,所述方法还包括:
[0018]在启动时生成本机识别随机串,将所述本机识别串作为所述服务器i的标识,并将所述服务器i的标识作为所述预设消息队列的标识;
[0019]监听所述预设消息队列是否接收到消息。
[0020]在一种可能的实现方式中,所述预设数据库为redis;
[0021]所述将所述服务器i的标识和所述已连接客户端的用户标识,与所述已连接客户端与所述服务器i建立的持久性连接的账号的对应关系保存在所述预设数据库中,包括:
[0022]将所述服务器i的标识和所述已连接客户端的用户标识作为key,所述已连接客户端与所述服务器i建立的持久性连接的账号作为value;
[0023]根据所述服务器i的标识和所述已连接客户端的用户标识,与所述已连接客户端与所述服务器i建立的持久性连接的账号的对应关系,建立所述key与所述value的对应关系;
[0024]将所述key与所述value的对应关系存入所述redis。
[0025]第二方面,本申请实施例提供一种通信装置,所述装置应用于服务器集群中的服务器i,所述服务器i与目标客户端之间基于预设通信协议进行通信,所述预设通信协议允许所述目标客户端与所述服务器i之间建立持久性连接,其中,i=1,2,
……
,n,n等于所述服务器集群中服务器的数量,所述装置包括:
[0026]确定模块,用于在监听到预设消息队列接收到消息时,所述预设消息队列的标识为所述服务器i的标识,所述消息包括所述目标客户端的用户标识,根据所述服务器i的标识和所述目标客户端的用户标识,确定所述目标客户端与所述服务器i之间建立持久性连接的账号;
[0027]发送模块,用于将所述账号发送至所述目标客户端,以使所述目标客户端根据所述账号与所述服务器i进行业务处理。
[0028]在一种可能的实现方式中,所述确定模块,具体用于:
[0029]在预设数据库中获取预存的服务器i的标识和已连接客户端的用户标识,与已连接客户端与服务器i通过所述预设通信协议建立持久性连接的账号的对应关系;
[0030]根据所述对应关系,确定所述服务器i的标识和所述目标客户端的用户标识对应的所述目标客户端与所述服务器i之间建立持久性连接的账号。
[0031]在一种可能的实现方式中,所述装置还包括:
[0032]接收模块,用于接收所述已连接客户端发送的连接建立持久性服务的请求;
[0033]返回模块,用于根据所述请求返回预设密钥至所述已连接客户端,以使所述已连接客户端根据所述预设密钥对所述已连接客户端的用户标识进行加密,并通过与所述服务器i建立的持久性连接的账号,将加密后的已连接客户端的用户标识发送至所述服务器i;
[0034]解密模块,用于对所述加密后的已连接客户端的用户标识进行解密;
[0035]保存模块,用于若解密成功,则将所述服务器i的标识和所述已连接客户端的用户
标识,与所述已连接客户端与所述服务器i建立的持久性连接的账号的对应关系保存在所述预设数据库中。
[0036]在一种可能的实现方式中,所述确定模块,还用于
[0037]在启动时生成本机识别随机串,将所述本机识别串作为所述服务器i的标识,并将所述服务器i的标识作为所述预设消息队列的标识;
[0038]监听所述预设消息队列是否接收到消息。
[0039]在一种可能的实现方式中,所述预设数据库为redis;
[0040]所述保存模块,具体用于:
[0041]将所述服务器i的标识和所述已连接客户端的用户标识作为key,所述已连接客户端与所述服务器i建立的持久性连接的账号作为value;
[0042]根据所述服务器i的标识和所述已连接客户端的用户标识,与所述已连接客户端与所述服务器i建立的持久性连接的账号的对应关系,建立所述key与本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通信方法,其特征在于,所述方法应用于服务器集群中的服务器i,所述服务器i与目标客户端之间基于预设通信协议进行通信,所述预设通信协议允许所述目标客户端与所述服务器i之间建立持久性连接,其中,i=1,2,
……
,n,n等于所述服务器集群中服务器的数量,所述方法包括:在监听到预设消息队列接收到消息时,所述预设消息队列的标识为所述服务器i的标识,所述消息包括所述目标客户端的用户标识,根据所述服务器i的标识和所述目标客户端的用户标识,确定所述目标客户端与所述服务器i之间建立持久性连接的账号;将所述账号发送至所述目标客户端,以使所述目标客户端根据所述账号与所述服务器i进行业务处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述服务器i的标识和所述目标客户端的用户标识,确定所述目标客户端与所述服务器i之间建立持久性连接的账号,包括:在预设数据库中获取预存的服务器i的标识和已连接客户端的用户标识,与已连接客户端与服务器i通过所述预设通信协议建立持久性连接的账号的对应关系;根据所述对应关系,确定所述服务器i的标识和所述目标客户端的用户标识对应的所述目标客户端与所述服务器i之间建立持久性连接的账号。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:接收所述已连接客户端发送的连接建立持久性服务的请求;根据所述请求返回预设密钥至所述已连接客户端,以使所述已连接客户端根据所述预设密钥对所述已连接客户端的用户标识进行加密,并通过与所述服务器i建立的持久性连接的账号,将加密后的已连接客户端的用户标识发送至所述服务器i;对所述加密后的已连接客户端的用户标识进行解密;若解密成功,则将所述服务器i的标识和所述已连接客户端的用户标识,与所述已连接客户端与所述服务器i建立的持久性连接的账号的对应关系保存在所述预设数据库中。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:在启动时生成本机识别随机串,将所述本机识别串作为所述服务器i的标识,并将所述服务器i的标识作为所述预设消息队列的标识;监听所述预设消息队列是否接收到消息。5.根据权利要求2或3所述的方法,其特征在于,所述预设数据库为redis;所述将所述服务器i的标识和所述已连接客户端的用户标识,与所述已连接客...

【专利技术属性】
技术研发人员:孙凯董琳杨斌
申请(专利权)人:联通支付有限公司
类型:发明
国别省市:

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

1