客户端即时通信方法、装置、设备及介质制造方法及图纸

技术编号:25350219 阅读:22 留言:0更新日期:2020-08-21 17:08
本发明专利技术公开了一种客户端即时通信方法,涉及通信技术领域,旨在通过共享客户端的session信息和连接的服务器信息,实现客户端的即时通信,该方法包含以下步骤:接收第一客户端向第二客户端发送的消息,获取第一客户端和第二客户端的客户端编号,并根据第一客户端和第二客户端的客户端编号在缓存数据库中分别获取第一客户端和第二客户端的session信息和连接的服务器信息;判断第一客户端连接的服务器信息和第二客户端连接的服务器信息是否相同,若相同,则通过所述相同的服务器向所述第二客户端转发所述消息;若不同,则通过所述第二客户端连接的服务器向所述第二客户端转发所述消息。本发明专利技术还公开了一种客户端即时通信装置、电子设备和计算机存储介质。

【技术实现步骤摘要】
客户端即时通信方法、装置、设备及介质
本专利技术涉及通信
,尤其涉及一种客户端即时通信方法、装置、设备及介质。
技术介绍
即时通信软件目前已经成为用户通过网络进行通信的重要手段。随着近年来日益加快的实时沟通需求,即时通信软件也在迅速发展,已经逐渐成为日常沟通的重要手段。目前该即时通信技术主要用于聊天系统的客户端之间的点对点通信。现有的点对点通信过程为:目前聊天系统的session大多保存在本地的聊天服务器中,客户端需要借助聊天服务器与客户端之间保持的session进行通信。而且聊天服务器多为非集群环境部署,连接的客户端数量存在一定限制,当客户端数量达到聊天服务器上限时,就会对整个聊天系统造成通信影响。如果需要连接更多的客户端就需要提高聊天服务器的硬件配置,可扩展性非常低。为了提高聊天服务器可连接的客户端数量,必须提高聊天服务器的扩展性,那么就需要对聊天服务器进行集群化部署。而为了实现集群环境下客户端之间的通信,在客户端连接聊天服务器时,需要使用关系型数据库保存客户端连接信息,以使得客户端通信时,聊天服务器能从关系型数据库中获取目标客户端连接信息,从而得到该目标客户端连接的聊天服务器,然后借助集群服务器之间的通信向目标客户端发送信息。在实现集群环境下的点对点通信时,无法方便的找到目标客户端的具体位置,目前只能需要借助关系型数据库定位目标客户端连接信息,但是这种方式读写信息的效率低,特别是当客户端数量不断增加时读写效率速度将更慢,而且当数据库损坏时,会对客户端之间的通信造成严重影响。
技术实现思路
为了克服现有技术的不足,本专利技术的目的之一在于提供一种客户端即时通信方法,通过缓存数据库来共享客户端session,实现服务器集群环境下客户端之间的点对点通信效率,保障客户端点对点的即时通信稳定性。本专利技术的目的之一采用以下技术方案实现:一种客户端即时通信方法,包括以下步骤:接收第一客户端向第二客户端发送的消息,获取所述第一客户端和第二客户端的客户端编号,并根据所述第一客户端和第二客户端的客户端编号在缓存数据库中分别获取所述第一客户端和第二客户端的session信息和连接的服务器信息;判断所述第一客户端连接的服务器信息和第二客户端连接的服务器信息是否相同,若相同,则通过第一客户端连接的服务器向所述第二客户端转发所述消息;若不同,则通过所述第二客户端连接的服务器向所述第二客户端转发所述消息。进一步地,所述缓存数据库存储客户端编号以及与所述客户端编号对应客户端的session信息和连接的服务器信息;所述缓存数据库在客户端向服务器发送连接请求时,接收或更新所述客户端的客户端编号、session信息和连接的服务器信息,具体包括以下步骤:服务器接收客户端发送连接请求时,与所述客户端通过socket建立连接,并获取所述客户端的客户端编号;服务器建立与缓存数据库的连接,并根据所述客户端编号从所述缓存数据库中获取所述客户端的session信息和连接的服务器信息;若获取所述客户端的session信息和连接的服务器信息失败,则将所述客户端编号、所述客户端的session信息以及连接的服务器信息以key-value保存到所述缓存数据库中;若获取所述客户端的session信息和连接的服务器信息成功,则缓存数据库中更新所述客户端编号、所述客户端的session信息以及连接的服务器信息。进一步地,若所述客户端连接中断,将所述客户端的session信息和所述客户端连接的服务器信息从所述缓存数据库删除。进一步地,所述第一客户端发送的消息包括待发送的消息和所述第二客户端的客户端编号。进一步地,若通过所述第二客户端的客户端编号从所述缓存数据库未获取到所述第二客户端的session信息和所述第二客户端连接的服务器信息,则判定所述第二客户端连接中断,将所述第一客户端发送的消息发送到所述第一客户端连接的服务器即结束。进一步地,所述缓存数据库为redis数据库或memcached系统。进一步地,连接若干所述redis数据库或mencached系统形成缓存数据库集群。本专利技术的目的之二在于提供一种客户端即时通信装置,其通过共享客户端的session信息,实现集群环境下客户端之间的点对点通信,并且能有效提高消息传输效率。本专利技术的目的之二采用以下技术方案实现:信息接收模块,用于接收第一客户端向第二客户端发送的消息,获取所述第一客户端和第二客户端的客户端编号,并根据第一客户端和第二客户端的客户端编号在缓存数据库中分别获取第一客户端和第二客户端的session信息和连接的服务器信息;信息转发模块,用于判断所述第一客户端连接的服务器信息和第二客户端连接的服务器信息是否相同,若相同,则通过第一客户端连接的服务器向所述第二客户端转发所述消息;若不同,则通过所述第二客户端连接的服务器向所述第二客户端转发所述消息。本专利技术的目的之三在于提供执行专利技术目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的客户端即时通信方法。本专利技术的目的之四在于提供存储专利技术目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的客户端即时通信方法。相比现有技术,本专利技术的有益效果在于:本专利技术利用redis等缓存数据库保存集群环境下在线客户端的session信息,并在集群环境下共享,使得服务器能有效获取集群环境下各客户端的连接信息,且获取信息的效率高,从而保障了客户端之间点对点通信的即时性,提高了客户端之间的通信效率和通信稳定性。附图说明图1是本专利技术客户端即时通信方法的流程图;图2是实施例1中redis数据库集群化实现客户端即时通信的部署图;图3是实施例2的客户端即时通信装置的结构框图;图4是实施例3的电子设备的结构框图。具体实施方式以下将结合附图,对本专利技术进行更为详细的描述,需要说明的是,下参照附图对本专利技术进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。实施例1本实施例提供了一种客户端即时通信方法,旨在使用reids等缓存数据库以key-value形式缓存客户端编号、客户端的session信息以及客户端连接的服务器信息,使得在客户端点对点通信过程中,根据发送客户端提供的接收客户端编号,能从redis中获取该接收客户端的session信息和接收客户端连接的服务器信息,从而实现向接收客户端发送消息,从而完成客户端之间的点对点通信。上述客户端即时通信方法分为两种情况:(1)若客户端即时通信发生在同一服务器的两台客户端之间,则服务器通过redis获取到目标客户端的session信息,即可直接向目标客户端直接发送消息。(2)若客户端即时通信发生在集群环境下连接到不同本文档来自技高网
...

【技术保护点】
1.一种客户端即时通信方法,其特征在于,包括以下步骤:/n接收第一客户端向第二客户端发送的消息,获取所述第一客户端和第二客户端的客户端编号,并根据所述第一客户端和第二客户端的客户端编号在缓存数据库中分别获取所述第一客户端和第二客户端的session信息和连接的服务器信息;/n判断所述第一客户端连接的服务器信息和第二客户端连接的服务器信息是否相同,若相同,则通过第一客户端连接的服务器向所述第二客户端转发所述消息;若不同,则通过所述第二客户端连接的服务器向所述第二客户端转发所述消息。/n

【技术特征摘要】
1.一种客户端即时通信方法,其特征在于,包括以下步骤:
接收第一客户端向第二客户端发送的消息,获取所述第一客户端和第二客户端的客户端编号,并根据所述第一客户端和第二客户端的客户端编号在缓存数据库中分别获取所述第一客户端和第二客户端的session信息和连接的服务器信息;
判断所述第一客户端连接的服务器信息和第二客户端连接的服务器信息是否相同,若相同,则通过第一客户端连接的服务器向所述第二客户端转发所述消息;若不同,则通过所述第二客户端连接的服务器向所述第二客户端转发所述消息。


2.如权利要求1所述的客户端即时通信方法,其特征在于,所述缓存数据库存储客户端编号以及与所述客户端编号对应客户端的session信息和连接的服务器信息;所述缓存数据库在客户端向服务器发送连接请求时,接收或更新所述客户端的客户端编号、session信息和连接的服务器信息,具体包括以下步骤:
服务器接收客户端发送连接请求时,与所述客户端通过socket建立连接,并获取所述客户端的客户端编号;
服务器建立与缓存数据库的连接,并根据所述客户端编号从所述缓存数据库中获取所述客户端的session信息和连接的服务器信息;
若获取所述客户端的session信息和连接的服务器信息失败,则将所述客户端编号、所述客户端的session信息以及连接的服务器信息以key-value保存到所述缓存数据库中;
若获取所述客户端的session信息和连接的服务器信息成功,则缓存数据库中更新所述客户端编号、所述客户端的session信息以及连接的服务器信息。


3.如权利要求2所述的客户端即时通信方法,其特征在于,若所述客户端连接中断,将所述客户端的session信息和所述客户端连接的服务器信息从所述缓存数据库删除。


4.如权利要求1所...

【专利技术属性】
技术研发人员:裘力俊卢晓飞张元元蔡荣
申请(专利权)人:杭州天宽科技有限公司
类型:发明
国别省市:浙江;33

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

1