一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

线上会话的通讯方法、装置、设备及存储介质与流程

2022-06-11 07:30:11 来源:中国专利 TAG:


1.本技术涉及通讯技术领域,尤其涉及一种线上会话的通讯方法、装置、计算机设备及存储介质。


背景技术:

2.目前pc端通讯业务更多需要应用程序下载安装等繁琐的操作,降低了沟通效率,而现有的web即时通讯(instantmessaging,im)技术中,具有无需安装客户端,穿透防火墙多个优势,可以通过ajax短轮询、comet,websocket,sse等实现客户端从服务端接收消息的场景。通过使用开源技术socket.io进行封装,即时通讯系统可兼容不同浏览器,但在利用集群服务器时,即时通讯系统仍存在对不同业务场景的系统性能和系统扩展性较差的问题。


技术实现要素:

3.本技术提供一种线上会话的通讯方法、装置、计算机设备及存储介质,解决了现有技术在不同业务场景下,即时通讯系统存在系统性能和系统扩展性较差的问题。
4.第一方面,本技术实施例提供了一种线上会话的通讯方法,包括:
5.在根据代理服务器分配的n个第一通讯实例接收到n个第一客户端的连接请求信息时,建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接,其中,n为大于1的整数;
6.根据所述代理服务器所生成的第二客户端的与目标第一客户端通讯请求,从n个所述第一通讯实例中确定目标第一客户端所对应的目标第一通讯实例;
7.核验所述与目标第一客户端通讯请求中的目标第一客户端id与所述目标第一客户端的目标第一客户端签名信息,通过所述目标第一通讯实例建立所述第二客户端和目标第一客户端的会话通讯连接。
8.第二方面,本技术实施例还提供了一种线上会话的通讯装置,包括:
9.通讯建立模块,在根据代理服务器分配的n个第一通讯实例接收到n个第一客户端的连接请求信息时,建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接,其中,n为大于1的整数;
10.目标通讯匹配模块,根据所述代理服务器所生成的第二客户端的与目标第一客户端通讯请求,从n个所述第一通讯实例中确定目标第一客户端所对应的目标第一通讯实例;
11.与目标通讯连接模块,核验所述与目标第一客户端通讯请求中的目标第一客户端id与所述目标第一客户端的目标第一客户端签名信息,通过所述目标第一通讯实例建立所述第二客户端和目标第一客户端的会话通讯连接。
12.第三方面,本技术实施例还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述线上会话的通讯方法的步骤。
13.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述线上会话的通讯方法的步骤。
14.本技术提供的线上会话的通讯方法、装置、计算机设备及存储介质,其中,一种线上会话的通讯方法,通过根据收到的n个第一客户端的连接请求信息,建立与代理服务器分配的n个第一通讯实例的n个第一客户端所对应的第一客户端会话连接;再根据代理服务器生成的第二客户端与目标第一客户端通讯请求,从n个第一通讯实例中确认目标第一客户端所对应的目标第一通讯实例;当与目标第一客户端通讯请求中的目标第一客户端id与目标第一客户端的目标第一客户端签名信息核验通过后,通过目标第一通讯实例建立第二客户端和目标第一客户端的会话通讯连接,在利用代理服务器提高了在不同应用场景下的通讯系统的扩展性的同时,通过多个通讯实例进行通讯连接,进而保证了通讯系统的性能。
附图说明
15.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
16.图1是本技术一实施例提供的一种线上会话的通讯方法的应用环境示意图;
17.图2是本技术一实施例提供的一种线上会话的通讯方法的实现流程图;
18.图3是本技术一实施例提供的一种线上会话的通讯方法中步骤s20的流程图;
19.图4是本技术一实施例提供的线上会话的通讯装置的结构示意图;
20.图5是本技术一实施例提供的计算机设备的示意图。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.本技术实施例提供的线上会话的通讯方法,可应用在如图1示出的应用环境中。如图1所示,客户端(计算机设备)通过网络与服务器进行通信。其中,客户端(计算机设备)包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑、摄像头和便携式可穿戴设备。服务器可以用独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
23.本实施例提供的线上会话的通讯方法可以由服务端执行,例如,通过第一客户端将连接请求信息发送至服务端,服务端基于该连接请求信息,执行本实施例提供的线上会话的通讯方法,建立第一通讯实例,使第二客户端连接服务器,通过与目标第一客户端通讯请求连接至第一通讯实例,进而与第一客户端进行会话通讯连接。
24.在图1之外的一些场景中,还可以是由第一客户端执行该线上会话的通讯方法,直
接根据第二客户端及与目标第一客户端通讯请求连接,通过执行本实施例提供的线上会话的通讯方法,建立与第一客户端进行会话通讯连接,然后将该线上会话的通讯结果发送至服务端进行存储。
25.本实施例中,基于websocket协议建立web即时通讯(instantmessaging,im),websocket是html5中的一种基于单个tcp连接上进行全双工通信的协议,其特点是服务端可以主动向客户端推送信息,客户端也可以主动向服务端发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
26.其中,还利用了socket.io技术,socket.io是一个跨浏览器支持websocket的实时通讯的js,socket.io支持及时、双向、基于事件的交流,可在不同平台、浏览器、设备上工作,可靠性和速度稳定。socket.io的常见应用场景包括实时分析,将数据推送到客户端,客户端表现为实时计数器、图表、日志客户;实时通讯;二进制流传输,socket.io支持任何形式的二进制文件传输,例如图片、视频、音频等;文档合并:允许多个用户同时编辑一个文档,并能够看到每个用户做出的修改。
27.图2示出了本技术一实施例提供的线上会话的通讯方法的实现流程图。如图2所示,提供一种线上会话的通讯方法,其技术方案主要包括以下步骤s10-s30:
28.步骤s10、在根据代理服务器分配的n个第一通讯实例接收到n个第一客户端的连接请求信息时,建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接,其中,n为大于1的整数。
29.在步骤s10中,服务器与客户端之间采用web即时通讯(instantmessaging,im)技术进行通信。其中,web即时通讯技具有无需安装客户端、穿透防火墙以及与社区的紧密结合的特点。通过在服务器设置多个服务器实例作为通讯实例以进行服务器与客户端的服务,以完成系统对于各客户端通讯的任务。
30.在一实施例中,当集群服务器的代理服务器接收到n个第一客户端的连接请求信息时,该代理服务器为各第一客户端分配对应的第一通讯实例,以用于建立服务器与第一客户端所对应的第一客户端会话连接。
31.在一实施例中,由于即时通讯系统具有访问量大,且具有实时性,通过分散式集群服务器的方式部署通讯系统,从而减少服务器成本、提高服务器可拓展性以及服务器的稳定性。
32.可以理解地,服务器实例又被称为service,又可以理解为一种虚拟机,通常用于根据用户环境的不同,可能需要创建一个或多个附加应用程序服务器实例,当服务器实例基于集群服务器时,服务器实例只能属于一个集群服务器。
33.可以理解地,集群(cluster)服务器为若干个相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。
34.当使用集群服务器可以通过在多台计算机上分发负载来促进负载平衡,并可以通过实例级别的故障转移来提供高可用性。计算机集群架构按功能和结构通常有以下几类:负载均衡集群、高可用性集群、高性能计算集群和网格计算集群。
35.本实施例步骤s10:在根据代理服务器分配的n个第一通讯实例接收到n个第一客户端的连接请求信息时,建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接,其中,n为大于1的整数。作为一个示例,步骤s10中,包括:
36.步骤s101、所述代理服务器根据通讯系统所对应集群服务器的负载状态为n个所述第一客户端分配对应n个所述第一通讯实例。
37.在步骤s101中,由于通讯系统部署在集群服务器上,代理服务器根据通讯系统所使用的集群服务器的各个节点的负载状态,为各个第一客户端分配节点上的某一第一通讯实例,从而保证系统的负载均衡。
38.在一实施例中,集群服务器利用负载均衡集群,通过负载均衡集群可以把很多客户集中的访问请求负载压力尽可能平均地分摊在计算机集群中处理,客户访问请求负载通常包括应用程序处理负载和网络流量负载。使用同一组应用程序为大量用户提供服务的模式,每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间动态分配,以实现负载均衡。
39.可以理解地,负载均衡集群(load balance cluster,lb或lbc)为集群服务器中的一种,一般是通过一个或多个前端负载均衡器将客户访问请求分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性,高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。
40.步骤s102、根据n个所述第一客户端签名信息建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接。
41.在步骤s102中,在建立服务器与第一客户端的连接时,需要将第一客户端对应的第一客户端签名信息进行获取,并保存至服务器从而用于与客户端之间的会话连接认证。
42.在一实施例中,接收n个所述第一客户端所发出的n个所述第一客户端签名信息,通过n个所述第一通讯实例进行签名信息核验,建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接;将n个所述第一通讯实例的第一通讯实例地址、n个所述第一客户端签名信息和n个所述第一客户端会话连接id保存至所述集群服务器。
43.其中,第一通讯实例地址为第一通讯实例对应的ip地址,用于后续连接第二客户端查找目标第一通讯实例使用;第一客户端签名信息通常包括第一客户端对应的客户端ip和mac地址等;第一客户端会话连接id为第一客户端与服务器所建立的第一客户端会话连接的id号,用于保持会话状态;所保存集群服务器中的redis服务器,基于内存存储的redis服务器能极大提升数据存储查询性能,集群架构也能保证系统的高可用和大量数据的存储。
44.可以理解地,redis(remote dictionary server)即远程字典服务,是一种高性能的key-value数据库,支持存储的value类型较多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set
‑‑
有序集合)和hash(哈希类型)。redis支持各种不同方式的排序,为了保证效率,数据都是缓存在内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。在客户端通讯过程中由于对及时性要求比较高,基于redis内存服务器的存储和查询数据能够减少数据io的时间,集群模式下的reids也能承载大数据量消息的存储,并且保证高可用。
45.步骤s20、根据所述代理服务器所生成的第二客户端的与目标第一客户端通讯请
求,从n个所述第一通讯实例中确定目标第一客户端所对应的目标第一通讯实例。
46.在步骤s20中、通过代理服务器接收各客户端的请求,进行预处理以达到集群服务器的负载均衡,在本实施例中,代理服务器还具有根据第二客户端的业务请求分配对应的目标第一客户端,并生成与目标第一客户端通讯请求的目标客户端匹配应用,但该目标客户端匹配应用并不限于设置于代理服务器,还可以设置在其他服务器或服务实例上,以满足第二客户端与第一客户端的通讯业务。
47.由于服务器具有n个第一通讯实例,第二客户端连接目标第一客户端需要找到连接目标第一客户端对应的第一通讯实例,也就是目标第一通讯实例,进而建立第二客户端与目标第一客户端的通讯连接。
48.在一实施例中,代理服务器利用nginx作为反向代理服务器,代理服务器在负载均衡集群的反向代理模式下作作为负载均衡设备,当代理服务器收到客户端请求后,会记录下此报文(通常包括源ip地址、目的ip地址、协议号、源端口、目的端口,服务类型以及接口索引),将报文目的地址更改为优选后的集群服务器的ip地址,目的端口号不变,源地址修改为代理服务器下行与对应集群服务器设备接口的ip地址,源端口号随机发送给集群服务器;
49.可以理解地,nginx(engine x)是一种高性能的http和反向代理web服务器,同时也提供了imap/pop3/smtp服务,其中,当nginx作为负载均衡服务时,nginx既可以在内部直接支持rails和php程序对外进行服务,也可以支持作为http代理服务对外进行服务。
50.如图3所示,出了本实施例步骤s20:根据所述代理服务器所生成的第二客户端的与目标第一客户端通讯请求,从n个所述第一通讯实例中确定目标第一客户端所对应的目标第一通讯实例的具体实现流程,作为一个示例,步骤s20中,包括:
51.步骤s201、接收所述代理服务器根据第二客户端的通讯业务需求所生成的所述与目标第一客户端通讯请求;
52.步骤s202、根据所述与目标第一客户端通讯请求中的目标第一客户端id在集群服务器中匹配所述目标第一客户端id所对应的目标第一客户端会话连接id;
53.步骤s203、根据所述目标第一客户端会话连接id从n个所述第一通讯实例中确定目标第一客户端所对应的目标第一通讯实例。
54.在步骤s201中,通过接收代理服务器根据第二客户端的通讯业务需求匹配对应的目标第一客户端,生成具有目标第一客户端id、业务相关等信息的与目标第一客户端通讯请求,进而解决第二客户端的通讯业务需求。
55.在一实施例中,所述代理服务器根据所接收所述第二客户端的通讯业务需求进行业务需求目标匹配,得到所述目标第一客户端;根据所述目标第一客户端和所述第二客户端生成所述与目标第一客户端通讯请求。其中,代理服务器根据第二客户端的通讯业务需求种的关键字进行对应的检索,以匹配对应的目标第一客户端。
56.在另一实施例中,通过配件询价场景进行示例,配件商(第一客户端)通过浏览器与服务器建立连接后,发布自身配件供应业务,修理厂用户(第二客户端)通过浏览器发布咨询价格请求,通过代理服务器处理询价相关业务,或利用代理服务器转发到询价交易系统处理询价相关业务,处理成功后将询价相关信息和需要通知的目标配件商id请求到生成对应的与目标第一客户端通讯请求,进而进行下一步的连接,以满足用户和商家的业务沟
通寻求。
57.在步骤s202中,由于第一客户端基于第一通讯实例生成对应的第一客户端会话连接,通过目标第一客户端id在集群服务器查询到目标第一客户端对应的目标第一客户端会话连接id,进而通过目标第一客户端会话连接id找到对应的目标第一通讯实例,进行客户端之间的通讯连接。
58.在步骤s203中,从服务器中的多个第一通讯实力中确定目标第一客户端所对应的目标第一通讯实例,从而建立第二客户端与目标第一客户端之间的通讯连接。
59.在一实施例中,若所述第二客户端连接所述集群服务器所使用的第一通讯实例的第一通讯实例id为所述目标第一通讯实例时,直接确定所述目标第一客户端所对应的目标第一通讯实例;
60.若所述第二客户端所使用的第一通讯实例不为所述目标第一通讯实例,将所述目标第一客户端会话连接id从n个所述第一通讯实例中确定所述目标第一通讯实例。
61.在一实施例中,目标第一通讯实例会监听服务器所发出的报文,当监听到服务器所发出的报文为具有目标第一客户端会话连接id的与目标第一客户端通讯请求时,则响应服务器从而确定目标第一通讯实例。
62.步骤s30、核验所述与目标第一客户端通讯请求中的目标第一客户端id与所述目标第一客户端的目标第一客户端签名信息,通过所述目标第一通讯实例建立所述第二客户端和目标第一客户端的会话通讯连接。
63.在步骤s30中,当确定第一通讯实例时,核验根据目标第一客户端签名信息核验与目标第一客户端通讯请求中的信息,若核对通过则通过目标第一通讯实例建立第二客户端和目标第一客户端的会话通讯连接,若核验存在问题,则校对与目标第一客户端通讯请求。通过签名核验的方式,保证了第二客户端和目标第一客户端连接的安全性,同时也让消息系统在应对恶意请求有了更好的防护拦截。
64.在一实施例中,通过所述目标第一通讯实例将所述与目标第一客户端通讯请求中的所述目标第一客户端id与所述目标第一客户端的目标第一客户端签名信息中的所述目标第一客户端id进行核验;通过所述目标第一通讯实例建立所述第二客户端和目标第一客户端的会话通讯连接。
65.在另一实施例中,配件商通过目标第一客户端会话连接所在的目标第一通讯实例,基于服务器发布订阅功能及时监听到的与配件商的业务请求,以及已建立的会话,在业务中,根据目标第一客户端会话连接id将询价消息传输给客户端的配件商用户。
66.在一实施例中,提供一种线上会话的通讯装置,该线上会话的通讯装置与上述实施例中线上会话的通讯方法一一对应。如图4所示,该线上会话的通讯装置包括通讯建立模块11、目标通讯匹配模块12和与目标通讯连接模块13,各功能模块详细说明如下:
67.通讯建立模块,在根据代理服务器分配的n个第一通讯实例接收到n个第一客户端的连接请求信息时,建立n个所述第一通讯实例与n个所述第一客户端的第一客户端会话连接,其中,n为大于1的整数;
68.目标通讯匹配模块,根据所述代理服务器所生成的第二客户端的与目标第一客户端通讯请求,从n个所述第一通讯实例中确定目标第一客户端所对应的目标第一通讯实例;
69.与目标通讯连接模块,核验所述与目标第一客户端通讯请求中的目标第一客户端
id与所述目标第一客户端的目标第一客户端签名信息,通过所述目标第一通讯实例建立所述第二客户端和目标第一客户端的会话通讯连接。
70.在另一实施例中,提供一种线上会话的通讯装置,还包括:
71.代理服务模块,所述代理服务器根据所接收所述第二客户端的通讯业务需求进行业务需求目标匹配,得到所述目标第一客户端;根据所述目标第一客户端和所述第二客户端生成所述与目标第一客户端通讯请求。
72.关于线上会话的通讯装置的具体限定可以参见上文中对于线上会话的通讯方法的限定,在此不再赘述。上述线上会话的通讯装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
73.在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端或者服务端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括可读存储介质、内存储器。该可读存储介质存储有操作系统、计算机程序和数据库。该内存储器为可读存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种线上会话的通讯方法。
74.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中线上会话的通讯方法。
75.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中线上会话的通讯方法。
76.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(dd集群服务器dram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
77.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
78.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各
实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献