CN112769837A - 基于WebSocket的通信传输方法、装置、设备、系统及存储介质 - Google Patents

基于WebSocket的通信传输方法、装置、设备、系统及存储介质 Download PDF

Info

Publication number
CN112769837A
CN112769837A CN202110044837.6A CN202110044837A CN112769837A CN 112769837 A CN112769837 A CN 112769837A CN 202110044837 A CN202110044837 A CN 202110044837A CN 112769837 A CN112769837 A CN 112769837A
Authority
CN
China
Prior art keywords
websocket
server
service
client
session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110044837.6A
Other languages
English (en)
Other versions
CN112769837B (zh
Inventor
黄燕达
沈鹏翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Luota Information Technology Co ltd
Original Assignee
Beijing Luota Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Luota Information Technology Co ltd filed Critical Beijing Luota Information Technology Co ltd
Priority to CN202110044837.6A priority Critical patent/CN112769837B/zh
Publication of CN112769837A publication Critical patent/CN112769837A/zh
Application granted granted Critical
Publication of CN112769837B publication Critical patent/CN112769837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种基于WebSocket的通信传输方法、装置、设备、系统及存储介质,其包括:第一WebSocket服务端与第一客户端建立WebSocket会话,第一WebSocket服务端属于WebSocket服务层,WebSocket服务层包含多个WebSocket服务端;第一WebSocket服务端接收第一客户端发送的业务请求,并根据业务请求调用相应业务服务端的接口,以使所业务服务端处理业务请求,第一WebSocket服务端中存储有多个不同业务服务端的接口;第一WebSocket服务端接收业务服务端反馈的业务响应,根据与第一客户端的WebSocket会话连接将业务响应下发至第一客户端。采用上述方法可以解决现有技术中当服务端中用于业务模块的程序更新时,导致WebSocket模块无法使用的技术问题。

Description

基于WebSocket的通信传输方法、装置、设备、系统及存储介质
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种基于WebSocket的通信传输方法、装置、设备、系统及存储介质。
背景技术
随着互联网的发展,传统的超文本传输协议(HyperText Transfer Protocol,HTTP)已经很难满足全球广域网(Web)应用日益复杂的需求,而WebSocket可以扩展通信功能,因此被广泛应用在Web应用中。其中,WebSocket是一种在单个传输控制协议(Transmission Control Protocol,TCP)连接上进行全双工通信的协议。通过WebSocket可以使客户端和服务端之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在使用WebSocket进行通信传输的场景中,客户端和服务端只需完成一次握手后便可永久性连接,并在连接过程中进行双向通行。一般而言,为了使用WebSocket进行通信传输,服务端需要在自身中单独集成WebSocket模块,并维护该WebSocket模块。此时,服务端不仅可进行业务处理,还可使用WebSocket。这种情况下,由于服务端处的业务处理和WebSocket模块实现了强耦合,所以当服务端中用于业务处理的模块更新时,会出现WebSocket模块无法使用的情况,使得客户端和服务端无法准确进行WebSocket通信传输。
发明内容
本申请实施例提供了一种基于WebSocket的通信传输方法、装置、设备、系统及存储介质,以解决现有技术中当服务端中用于业务处理的模块更新时,导致WebSocket模块无法使用的技术问题。
第一方面,本申请实施例提供了一种基于WebSocket的通信传输方法,包括:
第一WebSocket服务端与第一客户端建立WebSocket会话,所述第一WebSocket服务端属于WebSocket服务层,所述WebSocket服务层包含多个WebSocket服务端;
所述第一WebSocket服务端接收所述第一客户端发送的业务请求;
所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口,以使所述业务服务端处理所述业务请求,所述第一WebSocket服务端中存储有多个业务服务端的接口,多个所述业务服务端可处理至少两种业务类别;
所述第一WebSocket服务端接收所述业务服务端反馈的业务响应,所述业务响应由所述业务服务端处理所述业务请求后生成;
所述第一WebSocket服务端根据与所述第一客户端的WebSocket会话将所述业务响应下发至所述第一客户端。
第二方面,本申请实施例还提供了一种基于WebSocket的通信传输装置,包括:
会话建立模块,配置于第一WebSocket服务端,用于与第一客户端建立WebSocket会话,所述第一WebSocket服务端属于WebSocket服务层,所述WebSocket服务层包含多个WebSocket服务端;
请求接收模块,配置于所述第一WebSocket服务端,用于接收所述第一客户端发送的业务请求;
接口调用模块,配置于所述第一WebSocket服务端,用于根据所述业务请求调用相应业务服务端的接口,以使所述业务服务端处理所述业务请求,所述第一WebSocket服务端中存储有多个业务服务端的接口,多个所述业务服务端可处理至少两种业务类别;
响应接收模块,配置于所述第一WebSocket服务端,用于接收所述业务服务端反馈的业务响应,所述业务响应由所述业务服务端处理所述业务请求后生成;
响应下发模块,配置于所述第一WebSocket服务端,用于根据与所述第一客户端的WebSocket会话将所述业务响应下发至所述第一客户端。
第三方面,本申请实施例还提供了一种基于WebSocket的通信传输设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于WebSocket的通信传输设备。
第四方面,本申请实施例还提供了一种基于WebSocket的通信传输系统,包括:WebSocket服务层,所述WebSocket服务层包含多个WebSocket服务端;
第一WebSocket服务端与第一客户端建立WebSocket会话,所述第一WebSocket服务端属于WebSocket服务层;
所述第一WebSocket服务端接收所述第一客户端发送的业务请求;
所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口,以使所述业务服务端处理所述业务请求,所述第一WebSocket服务端中存储有多个业务服务端的接口,多个所述业务服务端可处理至少两种业务类别;
所述第一WebSocket服务端接收所述业务服务端反馈的业务响应,所述业务响应由所述业务服务端处理所述业务请求后生成;
所述第一WebSocket服务端根据与所述第一客户端的WebSocket会话将所述业务响应下发至所述第一客户端。
第五方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的基于WebSocket的通信传输方法。
上述基于WebSocket的通信传输方法、装置、设备、系统及存储介质,通过WebSocket服务层中的第一WebSocket服务端与第一客户端建立WebSocket会话,并接收第一客户端发送的业务请求,之后,第一WebSocket服务端根据业务请求调用相应业务服务端的接口,以使业务服务端处理该业务请求,之后,第一WebSocket服务端获取业务服务端反馈的业务响应,并根据WebSocket会话将业务响应反馈至第一客户端的技术手段,解决了现有技术中当服务端中用于业务处理的模块更新时,导致WebSocket模块无法使用的技术问题。上述技术手段将处理业务的业务服务端和使用WebSocket的WebSocket服务端解耦,业务服务端的开发和更新过程与WebSocket服务端无关,不会影响WebSocket的使用,同时客户端与WebSocket服务端间的通信传输与业务服务端无关,使得客户端与业务服务端进行了隔离。并且,避免了WebSocket模块的重复开发,即每次开发业务服务端时,无需开发对应的WebSocket模块,只需在WebSocket服务端中设置业务服务端对应的接口,便可以实现WebSocket服务端与业务服务端的通信传输,节省了开发资源,实现了业务的快速接入。同时,WebSocket服务层可以结合实际情况扩容,无需考虑业务服务端,也提高了通信传输的可用性。
附图说明
图1为本申请实施例提供的一种基于WebSocket的通信传输方法的流程图;
图2为本申请实施例提供的一种交互流程图;
图3为本申请实施例提供的另一种基于WebSocket的通信传输方法的流程图;
图4为本申请实施例提供的另一种交互流程图;
图5为本申请实施例提供的一种基于WebSocket的通信传输装置的结构示意图;
图6为本申请实施例提供的一种基于WebSocket的通信传输系统的结构示意图;
图7为本申请实施例提供的另一种基于WebSocket的通信传输系统的结构示意图;
图8为本申请实施例提供的一种基于WebSocket的通信传输设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或操作或对象与另一个实体或操作或对象区分开来,而不一定要求或者暗示这些实体或操作或对象之间存在任何这种实际的关系或顺序。例如,第一WebSocket服务端和第二WebSocket服务端的“第一”和“第二”用来区分两个不同的WebSocket服务端。
本申请实施例提供的基于WebSocket的通信传输方法可以由基于WebSocket的通信传输系统执行,该通信传输系统提供WebSocket服务。客户端与业务服务端可通过上述通信服务系统实现通信传输。其中,客户端为用户侧使用的设备,其包括但不限定于:手机、平板电脑、笔记本、台式电脑等。客户端中安装有至少一个应用程序,该应用程序的类别实施例不作限定。例如,该应用程序为在线游戏应用程序或在线聊天应用程序。应用程序通过客户端与通信服务系统建立WebSocket会话,之后,再通过通信服务系统与业务服务端实现通信传输,以由业务服务端处理应用程序的相关业务。可理解,实施例中提及的客户端的相关操作均可理解为其当前运行的应用程序的相关操作。进一步的,业务服务端用于进行业务处理,其与通信服务系统进行通信传输。业务服务端为多个,每个业务服务端可以由一台物理服务器或多台物理服务器组成,实施例对此不做限定。多个业务服务端可处理至少两种业务类别,即通信服务系统可与不同业务类别的业务服务端进行通信。实施例中,一个业务服务端处理一种类别的业务。实际应用中,一个业务服务端也可以处理多种类别的业务,且不同业务服务端间可以处理相同类别的业务,即同种类别的业务可由多个业务服务端处理。
其中,业务类别的区分方式实施例不作限定。一个实施例中,根据应用程序区分业务类别,即同一应用程序的相关业务属于同一类别的业务,例如,在线游戏场景下,应用程序的相关业务(如进行双人对战游戏、进行多人对战游戏、查找好友等)属于同一类别的业务。此时,一个应用程序可由一个业务服务端提供服务。另一个实施例中,根据业务内容区分业务类别,例如,在线游戏场景下,查找好友为一种业务类别,进行对战游戏为另一种业务类别,此时,一个应用程序可由多个业务服务端提供服务。
实施例中,基于WebSocket的通信传输系统包括多个WebSocket服务端,各WebSocket服务端的处理规则相同。进一步的,各WebSocket服务端可以集成在一台物理服务器中也可以分布在多台物理服务器中。实际应用中,结合客户端的访问量可以对使用的物理服务器进行扩容。客户端的访问量可理解为客户端的业务处理需求量。实施例中,WebSocket服务端可与不同的客户端及对应的业务服务端进行通信传输,即通过设置独立的WebSocket服务层实现WebSocket和业务处理的解耦。
一个实施例中,基于WebSocket的通信传输系统执行基于WebSocket的通信传输方法时,具体包括如下内容。图1为本申请实施例提供的一种基于WebSocket的通信传输方法的流程图。参考图1,该通信传输方法包括:
步骤110、第一WebSocket服务端与第一客户端建立WebSocket会话,第一WebSocket服务端属于WebSocket服务层,WebSocket服务层包含多个WebSocket服务端。
第一客户端是指当前存在业务处理需求的客户端。实施例中,第一客户端与WebSocket服务层中的一WebSocket服务端建立会话,该会话采用WebSocket进行连接,因此,实施例中将该会话记为WebSocket会话。可理解,会话是指通信双方从开始通信到结束通信期间的上下文,其记录了第一客户端、第一客户端当前运行的应用程序以及该应用程序当前登录的用户(如用户身份证明)等内容。可理解,会话和连接是同时连接的,连接是指第一客户端和WebSocket服务端间的物理传输路径。
实施例中,将与第一客户端建立WebSocket会话的WebSocket服务端记为第一WebSocket服务端。示例性的,第一客户端先向第一WebSocket服务端发送一请求,该请求用于通知第一WebSocket服务端当前需要建立WebSocket会话,该请求还可包括第一客户端的网络地址、业务标识、当前登录用户的用户身份证明(User Identification,Uid)等内容,实施例中,将该请求记为会话建立请求。其中,当根据应用程序区分业务类别时,业务标识也可以理解为应用标识,通过业务标识可区分不同的业务。当根据业务内容区分业务类别时,业务标识中还包括应用标识,即业务标识和应用标识共同组成业务标识,该业务标识可区分不同应用程序中不同类别的业务。进一步的,第一WebSocket接收会话建立请求后向第一客户端反馈一响应,该响应用于通知第一客户端当前可以建立WebSocket会话,实施例中,将该响应记为会话建立响应。第一客户端接收该会话建立响应后确定与第一WebSocket服务端建立WebSocket会话。可选的,第一WebSocket服务端接收到会话建立请求后,先进行校验,并在校验通过后生成会话建立响应,其中,校验方式实施例不作限定,例如,会话建立请求包含校验码,第一WebSocket服务端按照设定的规则对该校验码进行校验以实现对会话建立请求进行校验。进一步的,第一WebSocket服务端以业务的形式在本地保存该WebSocket会话,即将WebSocket会话作为当前处理的一个业务。并且,第一WebSocket服务端还可存储第一客户端的网络地址、业务标识、当前登录用户的Uid等内容。
一个实施例中,第一客户端与第一WebSocket服务端间通过负载均衡服务端建立WebSocket会话。其中,负载均衡服务端可包含在基于WebSocket的通信传输系统中。负载均衡服务端由虚拟服务器集群和应用程序接口网关组成。虚拟服务器集群是Linux虚拟服务器(Linux Vurtual Server,LVS),用于实现负载均衡。应用程序接口网关具体为Kong,其是基于OpenResty的一款开源API网关,可通过Lua进行功能扩展,其中,Lua是一个小巧的脚本语言。实施例中,通过负载均衡服务端建立WebSocket会话时,本步骤具体包括步骤111-步骤112:
步骤111、第一WebSocket服务端接收负载均衡服务端发送的会话建立请求,负载均衡服务端由虚拟服务器集群和应用程序接口网关组成,负载均衡服务端用于接收第一客户端发送的会话建立请求并根据负载均衡策略将会话建立请求发送至第一WebSocket服务端。
示例性的,第一客户端生成会话建立请求后发送至LVS,由LVS进行负载均衡,以在各WebSocke服务端中选择第一WebSocket服务端。其中,负载均衡策略的内容实施例不作限定,如通过随机的方式选择第一WebSocket服务端,或者采用哈希算法选择第一WebSocket服务器。进一步的,选择第一WebSocket服务端后,Kong将会话建立请求发送至第一WebSocket服务端。具体的,WebSocket服务层中的各WebSocket服务端均在Kong中注册,以使Kong明确WebSocket服务层中存在的各WebSocket服务端。
步骤112、第一WebSocket服务端根据会话建立请求生成会话建立响应,并通过负载均衡服务端将会话建立响应反馈至第一客户端,以实现与第一客户端建立WebSocket会话。
示例性的,第一WebSocket服务端接收到会话建立请求后,进行验证并在验证通过后生成会话建立响应,之后,第一WebSocket服务端将会话建立响应发送至Kong。由Kong将会话建立响应发送至LVS,并由LVS将会话建立响应反馈至第一客户端,以实现第一WebSocket服务端与第一客户端建立WebSocket会话。
一个实施例中,第一WebSocket服务端与第一客户端建立WebSocket会话后,还包括:第一WebSocket服务端将第一WebSocket服务端与第一客户端的会话连接关系发送至存储服务端进行存储,存储服务端中存储有WebSocket服务层中各WebSocket服务端与相应客户端建立的会话连接关系。其中,存储服务端可包含在基于WebSocket的通信传输系统中。存储服务端用于提供存储服务。存储服务端可以为一台物理服务器或由多台物理服务器组成。存储服务端的类型可根据实际情况设定。实施例中,存储服务端为Codis。其中,Codis是一个分布式Redis解决方案。其中,Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。需说明,对于上层的应用来说,第一WebSocket服务端连接到Codis Proxy与连接到Redis Server相似,其中,Codis Proxy是连接第一WebSocket服务端和Codis的程序。上层的应用可以像使用单机的Redis一样使用Codis,Codis的底层可处理请求的转发、不停机的数据迁移等工作,Codis的工作对于第一WebSocket服务端来说都是透明的。具体的,建立WebSocket会话后,第一WebSocket服务端将其与第一客户端的会话连接关系保存至Codis。其中,保存会话连接关系可包括保存用户信息以及第一WebSocket服务端的网络地址和端口信息。用户信息包括当前的WebSocket会话、第一客户端的Uid和/或业务标识等内容,其中,第一WebSocket服务端的网络地址具体为IP地址。可理解,WebSocket服务层中各WebSocket服务端与其对应的客户端间的会话连接关系均可保存在Codis中,以使各WebSocket服务端访问Codis后可以明确当前与WebSocket服务层建立会话的各客户端。
需说明,一个WebSocket服务端可与多个客户端同时建立WebSocket会话,而每个客户端当前仅与一个WebSocket服务端建立WebSocket会话。
步骤120、第一WebSocket服务端接收第一客户端发送的业务请求。
业务请求是用于使业务服务端处理业务的请求。实施例中,业务请求至少包括:第一客户端的Uid、请求内容和业务标识等。可选的,业务请求的生成方式实施例不作限定。例如,小游戏场景下,第一客户端检测到用户开启对战功能后,确定接收到进行游戏对战的业务请求,之后,第一客户端对该业务请求按照一定方式进行处理,如将该业务请求转换成二进制数据,以便于业务请求在第一客户端与第一WebSocket服务端间的通信传输。之后,第一客户端通过已建立的WebSocket会话将处理后的业务请求发送至第一WebSocket服务端,以使第一WebSocket服务端接收该业务请求。
步骤130、第一WebSocket服务端根据业务请求调用相应业务服务端的接口,以使业务服务端处理业务请求,第一WebSocket服务端中存储有多个业务服务端的接口,多个业务服务端可处理至少两种业务类别。
示例性的,每个WebSocket服务端均可从系统配置中获取各业务服务端的接口路径。其中,系统配置中记录有当前WebSocket服务层可进行通信传输的各业务服务端的接口路径,并且各业务服务端可处理至少两种类别的业务。WebSocket服务层中各WebSocket服务端共享该系统配置。该系统配置可由WebSocket服务层的后台管理端设置,其中,后台管理端用于管理WebSocket服务层,如用于在WebSocket服务层中增加或删除WebSocket服务端或更改系统配置等。可理解,当业务服务端发生变化时,只需要更改下系统配置,便可以使各WebSocket服务端明确更改情况,进而与业务服务端进行准确的通信传输。具体的,第一WebSocket服务端接收业务请求后获取系统配置,并从系统配置中查询处理当前业务请求的业务服务端的接口路径,之后,通过该接口路径调用相应的接口。调用该接口后,业务服务端可接收业务请求并处理业务请求。
一个实施例中,第一WebSocket服务端在调用业务服务端的接口时,通过业务标识查找相应的接口路径。此时,本步骤具体包括步骤131-步骤133:
步骤131、第一WebSocket服务端获取业务请求中的业务标识。
一个实施例中,业务请求中包含业务标识。第一WebSocket服务端接收到业务请求后,对其进行解析,以获取其包含的业务标识。其中,解析方式实施例不作限定。
步骤132、第一WebSocket服务端根据业务标识获取相应业务服务端的接口。
示例性的,系统配置中记录各业务标识对应的接口路径,该接口路径为相应业务服务端的接口路径。第一WebSocket服务端获取业务标识后,从系统配置中查找该业务标识对应的接口路径,进而通过该接口路径确定相应业务服务端的接口。
步骤133、第一WebSocket服务端通过Feign调用业务服务端的接口。
示例性的,Feign是指“假装”、“伪装”或“变形”,其是HTTP请求调用的轻量级框架。Feign以接口注解的方式调用HTTP请求。Feign可通过处理接口注解将HTTP请求模板化,在需要调用接口候传入参数(即业务请求),根据参数再应用到HTTP请求上,进而转化成真正的HTTP请求。实施例中,通过Feign调用业务服务端的接口,即以HTTP请求的方式使业务服务端接收到业务请求。
一个实施例中,第一客户端发送业务请求时支持重试,具体的,第一客户端发送业务请求后,若设定的时间间隔内未接收到业务响应,则会重复发送该业务请求,以避免业务请求发送途中丢失等问题使得第一WebSocket服务端无法接收到该业务请求的情况。此时,业务请求包含去重标识,去重标识为seqId,其具体生成规则实施例不作限定。通过该去重标识可使第一WebSocket服务端确定该业务请求是否重复接收。此时,本步骤具体包括步骤134-步骤136:
步骤134、第一WebSocket服务端获取业务请求中的去重标识。
第一WebSocket服务端接收到业务请求后,对其进行解析,以获取其包含的去重标识。其中,解析方式实施例不作限定。
步骤135、第一WebSocket服务端根据去重标识确定是否重复接收业务请求。若未重复接收业务请求,则执行步骤136。
示例性的,去重标识可体现当前的业务请求是否为重复发送的。第一WebSocket服务端获取去重标识后,查找已接收到的业务请求,以确定当前接收的业务请求与已接收的业务请求是否相同,若相同,则说明重复接收业务请求,并放弃处理当前的业务请求。若不相同,则说明未重复接收到业务请求,则执行步骤136。
步骤136、第一WebSocket服务端根据业务请求调用相应业务服务端的接口。
可选的,执行步骤136时,可具体执行上述步骤131-步骤133。
步骤140、第一WebSocket服务端接收业务服务端反馈的业务响应,业务响应由业务服务端处理业务请求后生成。
具体的,业务服务端接收到业务请求,对其进行处理并获取处理结果,其中,处理结果可理解为业务请求对应的响应结果,实施例中,将处理结果记为业务响应。可理解,业务服务端中存储有处理业务请求的业务处理程序,该业务处理程序表示处理业务请求时的执行逻辑,业务服务端通过该业务处理程序处理请求。一个实施例中,当业务服务端同时接收到多个业务请求时,采用并行处理的方式,以保证业务请求的处理速度。其中,多个业务请求可以来自同一WebSocket服务端也可以来自不同WebSocket服务端。一个实施例中,业务服务端处理业务请求时,先进行参数校验,若校验成功,说明可处理当前的业务请求。若不成功,则说明无法处理当前的业务请求,并将处理失败作为当前的响应结果。其中,参数校验的具体内容实施例不作限定,例如,通过校验业务请求中的Uid,以确定当前的用户是否为合法的用户(即完成注册的用户)。再如,通过校验业务请求中的业务标识,以确定当前的业务请求是否为自身可处理的业务请求。可理解,若业务请求涉及到其他的客户端,如向其他的客户端发送消息,那么,业务服务端除了需要向第一客户端反馈业务响应,还需要向其他的客户端发送该消息,此时,业务服务端可以采用异步线程的方式,即向第一客户端反馈业务响应和向其他的客户端发送消息通过不同的线程执行,以保证处理效率。
进一步的,业务服务端获取业务响应后,将业务响应反馈至第一WebSocket服务端。其中,业务响应中包含第一客户端的相关信息,如包含第一客户端的Uid等。示例性的,业务服务端将业务响应反馈至第一WebSocket服务端时,通过Feign反馈业务响应,即以HTTP请求的方式反馈业务响应。
步骤150、第一WebSocket服务端根据与第一客户端的WebSocket会话将业务响应下发至第一客户端。
具体的,第一WebSocket服务端接收到业务响应后,获取业务响应中第一客户端的相关信息,之后,在自身已保存的WebSocket会话中查找第一客户端对应的WebSocket会话,并根据该WebSocket会话将业务响应反馈至第一客户端。
可理解,第一客户端与第一WebSocket服务端间WebSocket会话断开的条件实施例不作限定。例如,当第一客户端的网络连接断开时,与第一WebSocket服务端断开本次WebSocket会话。再如,第一WebSocket服务端一定时间内未与第一客户端进行通信传输时,断开本次WebSocket会话。又如,第一客户端根据用户指令断开本次会话,举例而言,第一客户端检测到应用程序关闭时,确定接收到用户指令并断开本次会话。
下面对本实施例提供的基于WebSocket的通信传输方法进行示例性描述。图2为本申请实施例提供的一种交互流程图。图2中步骤1.1、1.2和1.3为会话建立过程。具体的,参考步骤1.1、1.2和1.3,第一客户端向第一WebSocket服务端发送会话建立请求,该会话建立请求中包含业务标识,第一WebSocket服务端根据会话建立请求与第一客户端建立WebSocket会话,并在本地保存WebSocket会话,并将会话连接关系保存在Codis。之后,图2中步骤2.1、2.2、2.3、2.4和2.5为业务请求处理流程,参考步骤2.1、2.2、2.3、2.4和2.5,第一客户端向第一WebSocket服务端发送业务请求,第一WebSocket服务端通过调用业务服务端接口的方式将业务请求发送至业务服务端。业务服务端接收业务请求后处理业务请求并得到业务响应,之后,将业务响应下发至第一WebSocket服务端。第一WebSocket服务端从自身保存的WebSocket会话中确定第一客户端,并将业务响应下发至该第一客户端。
上述,通过WebSocket服务层中的第一WebSocket服务端与第一客户端建立WebSocket会话,并接收第一客户端发送的业务请求,之后,第一WebSocket服务端根据业务请求调用相应业务服务端的接口,以使业务服务端处理该业务请求,之后,第一WebSocket服务端获取业务服务端反馈的业务响应,并根据WebSocket会话将业务响应反馈至第一客户端的技术手段,解决了现有技术中当服务端中用于业务处理的模块更新时,导致WebSocket模块无法使用的技术问题。上述技术手段将处理业务的业务服务端和使用WebSocket的WebSocket服务端解耦,业务服务端的开发和更新过程与WebSocket服务端无关,不会影响WebSocket的使用。同时客户端与WebSocket服务端间的通信传输与业务服务端无关,使得客户端与业务服务端进行了隔离。并且,避免了WebSocket模块的重复开发,即每次业务服务端开发时,无需开发对应的WebSocket模块,只需在WebSocket服务端中设置业务服务端对应的接口,便可以实现WebSocket服务端与业务服务端的通信传输,节省了开发资源,实现了业务的快速接入。同时,WebSocket服务层可以结合实际情况扩容,无需考虑业务服务端,也提高了通信传输的可用性。并且,通过Feign使WebSocket服务端与业务服务端进行HTTP调用,可实现快速的调用业务服务端,减小了解析业务服务端域名的耗时,同时业务服务端只需配置WebSocket对应的协议入口,无需了解客户端与WebSocket服务端间的通信传输过程。进一步的,利用负载均衡服务端可使用负载均衡的方式选择第一WebSocket服务端,实现了客户端与WebSocket服务层间的流量控制。进一步的,通过存储服务端存储会话连接关系,可使得WebSocket服务层通过会话连接关系准确的与对应客户端进行数据通信,且可使各WebSocket服务端互相明确与客户端的连接情况,便于数据共享,且减轻了WebSocket服务端的存储压力。进一步的,客户端支持重发,并通过去重标识使WebSocket服务端进行去重处理,可保证业务请求的一致性,避免重复处理相同的业务请求。
在上述实施例的基础上,图3为本申请实施例提供的另一种基于WebSocket的通信传输方法的流程图,本实施例是在上述实施例的基础上进行具体化。本实施例中,业务请求为向第二客户端发送数据消息,即业务请求为第一客户端向第二客户端发送一数据消息。其中,第二客户端与第一客户端运行相同的应用程序且第二客户端与第一客户端为不同的用户。第二客户端与WebSocket服务层中一WebSocket服务端建立WebSocket会话。第二客户端可以为一个或多个,实施例对此不做限定。此时,业务请求中除了包括第一客户端的Uid、请求内容和业务标识等,还包括第二客户端的用户信息。其中,请求内容为需要发送的具体数据消息。
参考图3,该基于WebSocket的通信传输方法的流程图具体包括:
步骤210、第一WebSocket服务端与第一客户端建立WebSocket会话,第一WebSocket服务端属于WebSocket服务层,WebSocket服务层包含多个WebSocket服务端。
步骤220、第一WebSocket服务端接收第一客户端发送的业务请求。
步骤230、第一WebSocket服务端根据业务请求调用相应业务服务端的接口,以使业务服务端处理业务请求,第一WebSocket服务端中存储有多个业务服务端的接口,多个业务服务端可处理至少两种业务类别。之后,执行步骤240和步骤260。
具体的,业务服务端处理业务请求时,采用异步线程进行处理,即通过一线程向第一客户端反馈业务响应,该业务响应为用于通知第一客户端已向第二客户端发送业务请求中的数据消息,即执行步骤240。并通过另一线程向第二客户端发送数据消息,即执行步骤260。
步骤240、第一WebSocket服务端接收业务服务端发送的业务响应,业务响应由业务服务端处理业务请求后生成。执行步骤250。
步骤250、第一WebSocket服务端根据与第一客户端的WebSocket会话将业务响应下发至第一客户端。
步骤260、第二WebSocket服务端接收业务服务端发送的数据消息和第二客户端的用户信息,第二WebSocket服务端由业务服务端确定,第二WebSocket服务端属于WebSocket服务层。执行步骤270。
示例性的,业务服务端向第二客户端发送数据消息时,先根据业务请求中的业务标识查找相应应用程序下全部的用户信息,之后,再根据业务请求中第二客户端的用户信息在全部用户中确定第二客户端对应的用户,可理解,业务请求中也可以只包括第二客户端的数量,此时,业务服务端可以根据该数量在全部的用户中查找出相应数量的第二客户端。可选的,业务服务端中可存储全部用户的用户信息,或者是,将全部用户的用户信息存储至相应的数据库中。进一步的,查找到第二客户端对应的用户后,业务服务端向WebSocket服务层中一WebSocket服务端发送该数据消息和第二客户端的用户信息。实施例中,将当前接收数据消息和第二客户端的用户信息的WebSocket服务端记为第二WebSocket服务端。可选的,第二WebSocket服务端可由业务服务端随机选择,或者是,业务服务端设置有访问存储服务端的权限,已通过访问存储服务端确定与第二客户端建立会话的第二WebSocket服务端,又或者是,业务服务端查询已处理的业务请求中与第二客户端有关的业务请求,并查找发送该业务请求的WebSocket服务端作为第二WebSocket服务端。查找到第二WebSocket服务端后,业务服务端向第二WebSocket服务端发送数据消息和第二客户端的用户信息。其中,业务服务端通过Feign向第二WebSocket服务端发送数据消息和第二客户端的用户信息。可理解,第二WebSocket服务端与第一WebSocket服务端可为同一WebSocket服务端。当第二客户端为多个时,第二WebSocket服务端为多个。
步骤270、第二WebSocket服务端根据用户信息确定是否与第二客户端已建立WebSocket会话。若与第二客户端已建立WebSocket会话,则执行步骤280。若未与第二客户端建立WebSocket会话,则执行步骤290。
具体的,第二WebSocket服务端接收到数据消息和第二客户端的用户信息后,先确定自身是否与第二客户端建立WebSocket会话。可选的,第二WebSocket服务端查询自身当前建立的全部WebSocket会话,并确定全部WebSocket会话中是否存在与第二客户端的WebSocket会话。其中,可通过判断WebSocket会话中是否存在第二客户端的用户信息的方式确定是否与第二客户端建立WebSocket会话。进一步的,若与第二客户端建立WebSocket会话,则说明第二WebSocket服务端可以与第二客户端进行通信传输,执行步骤280。若未与第二客户端建立WebSocket会话,则说明第二WebSocket服务端不可与第二客户端进行通信传输,执行步骤290。
步骤280、第二WebSocket服务端将数据消息下发至第二客户端。
具体的,第二WebSocket服务端将数据消息下发至第二客户端与第一客户端将业务响应下发至第一客户端的实现过程相同,在此不做赘述。
步骤290、第二WebSocket服务端根据用户信息在WebSocket服务层中查找与第二客户端建立WebSocket会话的第三WebSocket服务端。执行步骤2100。
示例性的,第二WebSocket服务端在WebSocket服务层查找与第二客户端建立WebSocket会话的WebSocket服务端,实施例中,将与第二客户端建立WebSocket会话的WebSocket服务端记为第三WebSocket服务端。一个实施例中,WebSocket服务层中各WebSocket服务端可进行数据共享,以共享会话连接关系,此时,第二WebSocket服务端通过数据共享确定第三WebSocket服务端。另一实施例中,第二WebSocket服务端访问存储服务端,并利用第二客户端的用户信息在存储服务端中查询第三WebSocket服务端的网络地址和端口,以得到第三WebSocket服务端。可理解,第三WebSocket服务端与第一WebSocket服务端可为同一WebSocket服务端。
步骤2100、第二WebSocket服务端通过超文本传输协议将用户信息和数据消息发送至第三WebSocket服务端。执行步骤2110。
示例性的,WebSocket服务层中各WebSocket服务端可通过HTTP进行通信。第二WebSocket服务端将第二客户端的用户信息和数据消息通过HTTP请求的方式发送至第三WebSocket服务端,以请求第三WebSocket服务端将数据消息下发至第二客户端。
步骤2110、第三WebSocket服务端根据用户信息确定与第二客户端的WebSocket会话,并通过WebSocket会话将数据消息下发至第二客户端。
示例性的,第三WebSocket服务端根据第二客户端的用户信息在自身建立的WebSocket会话中查找第二客户端的WebSocket会话,之后,通过该WebSocket会话将数据消息下发至第二客户端。
下面对本实施例提供的基于WebSocket的通信传输方法进行示例性描述。图4为本申请实施例提供的另一种交互流程图。本示例中,第一客户端与第一WebSocket服务端已建立会话,第二客户端与第三WebSocket服务端已建立会话,业务请求为向第二客户端发送数据消息。图4中步骤2.1、2.2、2.3、2.4、2.5、2.6、2.7、2.8和2.9为业务请求处理流程,参考步骤2.1-2.9,该处理流程具体为:第一WebSocket服务端接收第一客户端向发送的业务请求,第一WebSocket服务端通过调用业务服务端接口的方式将业务请求发送至业务服务端。业务服务端处理业务请求后得到业务响应,将业务响应下发至第一WebSocket服务端。第一WebSocket服务端通过已建立的会话将业务响应下发至该第一客户端。业务服务端处理业务请求时,还将业务请求中数据消息和第二客户端的用户信息发送至第二WebSocket服务端,第二WebSocket服务端确定自身未与第二客户端建立会话后,通过Codis查找第二客户端对应的第三WebSocket服务端,之后,通过HTTP请求指示第三WebSocket服务端将消息数据下发至第二客户端。第三WebSocket服务端根据该HTTP请求将消息数据下发至第二客户端。
上述,在业务请求为向第二客户端发送数据消息时,第一WebSocket服务端与第一客户端建立WebSocket会话,并接收第一客户端发送的业务请求,之后,根据业务请求调用相应业务服务端的接口,以使业务服务端处理该业务请求,之后,获取业务服务端反馈的业务响应,并根据WebSocket会话将业务响应反馈至第一客户端,同时业务服务端选择第二WebSocket服务端,并将第二客户端的用户信息和消息数据发送至第二WebSocket服务端,第二WebSocket服务端与第二客户端建立WebSocket会话时,可直接将消息数据发送至第二客户端,第二WebSocket服务端未与第二客户端建立WebSocket会话时,查找与第二客户端建立WebSocket会话的第三WebSocket服务端,并通过HTTP使第三WebSocket服务端将消息数据下发至第二客户端的技术手段,解决了现有技术中当服务端中用于业务处理的模块更新时,导致WebSocket模块无法使用的技术问题,并且实现了不同客户端间准确发送数据消息,例如,在小游戏场景下,实现了游戏对战。通过解耦业务服务端与WebSocket服务端,保证了WebSocket的正常使用。
在上述实施例的基础上,本申请实施例还提供一种基于WebSocket的通信传输装置。图5为本申请实施例提供的一种基于WebSocket的通信传输装置的结构示意图。参考图5,本申请实施例提供的基于WebSocket的通信传输装置包括:会话建立模块301、请求接收模块302、接口调用模块303、响应接收模块304以及响应下发模块305。
其中,会话建立模块301,配置于第一WebSocket服务端,用于与第一客户端建立WebSocket会话,第一WebSocket服务端属于WebSocket服务层,WebSocket服务层包含多个WebSocket服务端;请求接收模块302,配置于第一WebSocket服务端,用于接收第一客户端发送的业务请求;接口调用模块303,配置于第一WebSocket服务端,用于根据业务请求调用相应业务服务端的接口,以使业务服务端处理业务请求,第一WebSocket服务端中存储有多个业务服务端的接口,多个业务服务端可处理至少两种业务类别;响应接收模块304,配置于第一WebSocket服务端,用于接收业务服务端反馈的业务响应,业务响应由业务服务端处理业务请求后生成;响应下发模块305,配置于第一WebSocket服务端,用于根据与第一客户端的WebSocket会话将业务响应下发至第一客户端。
在上述实施例的基础上,业务请求为向第二客户端发送数据消息,通信传输装置还包括:消息接收模块,配置于第二WebSocket服务端,用于在第一WebSocket服务端根据业务请求调用相应业务服务端的接口之后,接收业务服务端发送的数据消息和第二客户端的用户信息,第二WebSocket服务端由业务服务端通过业务请求确定,第二WebSocket服务端属于WebSocket服务层;会话确定模块,配置于第二WebSocket服务端,用于根据用户信息确定是否与第二客户端已建立WebSocket会话;第一消息下发模块,配置于第二WebSocket服务端,用于若与第二客户端建立WebSocket会话,则将数据消息下发至第二客户端。
在上述实施例的基础上,还包括:WebSocket服务端查找模块,配置于第二WebSocket服务端,用于若未与第二客户端建立WebSocket会话,则根据用户信息在WebSocket服务层中查找与第二客户端建立WebSocket会话的第三WebSocket服务端;消息发送模块,配置于第二WebSocket服务端,用于通过超文本传输协议将用户信息和数据消息发送至第三WebSocket服务端;第二消息下发模块,配置于第三WebSocket服务端,用于根据用户信息确定与第二客户端的WebSocket会话,并通过WebSocket会话将数据消息下发至第二客户端。
在上述实施例的基础上,接口调用模块303包括:标识获取单元,用于获取业务请求中的业务标识;接口获取单元,用于根据业务标识获取相应业务服务端的接口;Feign调用单元,用于通过Feign调用业务服务端的接口。
在上述实施例的基础上,还包括:存储模块,配置于第一WebSocket服务端,用于与第一客户端建立WebSocket会话连接之后,将第一WebSocket服务端与第一客户端的会话连接关系发送至存储服务端进行存储,存储服务端中存储有WebSocket服务层中各WebSocket服务端与相应客户端建立的会话连接关系。
在上述实施例的基础上,业务请求包含去重标识,接口调用模块303包括:去重标识获取单元,用于获取所述业务请求中的去重标识;去重判断单元,用于根据去重标识确定是否重复接收所述业务请求;接口调用单元,用于若未重复接收业务请求,则根据业务请求调用相应业务服务端的接口。
值得注意的是,上述通信传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
本实施例提供的通信传输装置用于执行上述任意实施例提供的基于WebSocket的通信传输方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供一种基于WebSocket的通信传输系统。图6为本申请实施例提供的一种基于WebSocket的通信传输系统的结构示意图。参考图6,该通信传输系统包括WebSocket服务层41,WebSocket服务层41包括多个WebSocket服务端411。
其中,第一WebSocket服务端与第一客户端建立WebSocket会话,第一WebSocket服务端属于WebSocket服务层41;第一WebSocket服务端接收第一客户端发送的业务请求;第一WebSocket服务端根据业务请求调用相应业务服务端的接口,以使业务服务端处理业务请求,第一WebSocket服务端中存储有多个业务服务端的接口,多个业务服务端可处理至少两种业务类别;第一WebSocket服务端接收业务服务端反馈的业务响应,业务响应由业务服务端处理业务请求后生成;第一WebSocket服务端根据与第一客户端的WebSocket会话将业务响应下发至第一客户端。
在上述实施例的基础上,业务请求为向第二客户端发送数据消息;第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口之后,还包括:第二WebSocket服务端接收业务服务端发送的数据消息和第二客户端的用户信息,第二WebSocket服务端由业务服务端通过业务请求确定,第二WebSocket服务端属于WebSocket服务层41;第二WebSocket服务端根据用户信息确定是否与第二客户端已建立WebSocket会话;若与第二客户端已建立WebSocket会话,则第二WebSocket服务端将数据消息下发至第二客户端。若未与第二客户端建立WebSocket会话,则第二WebSocket服务端根据用户信息在WebSocket服务层41中查找与第二客户端建立WebSocket会话连接的第三WebSocket服务端;第二WebSocket服务端通过超文本传输协议将用户信息和数据消息发送至第三WebSocket服务端;第三WebSocket服务端根据用户信息确定与第二客户端的WebSocket会话,并通过WebSocket会话将数据消息下发至第二客户端。
在上述实施例的基础上,第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口时具体包括:获取业务请求中的业务标识;根据业务标识获取相应业务服务端的接口;通过Feign调用业务服务端的接口。
在上述实施例的基础上,通信传输系统还包括:存储服务端,存储服务端存储第一WebSocket服务端与第一客户端的会话连接关系,存储服务端中存储有WebSocket服务层中各WebSocket服务端与相应客户端建立的会话连接关系。
在上述实施例的基础上,通信传输系统还包括:负载均衡服务端,负载均衡服务端由虚拟服务器集群和应用程序接口网关组成;负载均衡服务端接收第一客户端发送的会话建立请求并根据负载均衡策略将会话建立请求发送至第一WebSocket服务端;第一WebSocket服务端根据会话建立请求生成会话建立响应,并将会话建立响应发送至负载均衡服务端;服务均衡服务端将会话建立响应反馈至第一客户端,以实现第一WebSocket服务端与第一客户端建立WebSocket会话。
在上述实施例的基础上,业务请求包含去重标识,第一WebSocket服务端根据业务请求调用相应业务服务端的接口时具体包括:获取业务请求中的去重标识;根据去重标识确定是否重复接收所述业务请求;若未重复接收所述业务请求,则第一WebSocket服务端根据业务请求调用相应业务服务端的接口。
下面对本申请实施例提供的基于WebSocket的通信传输系统进行示例性说明。其中,图7为本申请实施例提供的另一种基于WebSocket的通信传输系统的结构示意图。参考图7,基于WebSocket的通信传输系统包括WebSocket服务层、LVS、Kong和Codis,其中,WebSocket服务层包含多个WebSocket服务端,各WebSocket服务端通过LVS和Kong与各客户端建立WebSocket会话,以实现通信传输。各WebSocket服务端通过Codis存储会话连接关系。各WebSocket服务端还可通过Feign的方式与各业务服务端进行通信传输。需说明,图7中客户端的数量、WebSocket服务端的数量和业务服务端的数量均为示例性描述而非限定,且各客户端的业务类型不同,各业务服务端可处理的业务类型也不同。
基于WebSocket的通信传输系统在执行基于WebSocket的通信传输方法时,具体的技术手段可参考上述实施例中的相关描述,在此不做赘述,并且具备相应的功能和有益效果。
本申请实施例还提供一种基于WebSocket的通信传输设备,可理解,上述基于WebSocket的通信传输系统中涉及的各物理服务器均可认为是基于WebSocket的通信传输设备。图8为本申请实施例提供的一种基于WebSocket的通信传输设备的结构示意图。如图8所示,该基于WebSocket的通信传输设备包括处理器50、存储器51和通信装置52;其中,处理器50的数量可以是一个或多个,图8中以一个处理器50为例。处理器50、存储器51和通信装置52可以通过总线或其他方式连接,图8中以通过总线连接为例。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行基于WebSocket的通信传输设备的各种功能应用以及数据处理,即实现上述基于WebSocket的通信传输方法中相关的操作。其中,存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据基于WebSocket的通信传输设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至基于WebSocket的通信传输设备。通信装置52可根据处理器50的指示与其他设备进行数据通信,如与第一客户端建立WebSocket会话,或调用业务服务端的接口。需说明,基于WebSocket的通信传输设备还可以结合实际情况配置其他的装置,如配置输入装置和输出装置,其中,输入装置可用于接收输入的数字或字符信息,以及产生与基于WebSocket的通信传输设备的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。
基于WebSocket的通信传输设备在执行基于WebSocket的通信传输方法时,具体的技术手段可参考上述实施例中的相关描述,在此不做赘述,并且具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请实施例提供的任一基于WebSocket的通信传输方法,具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务进程,或者网络设备等)执行本申请各个实施例所述的基于WebSocket的通信传输方法。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种基于WebSocket的通信传输方法,其特征在于,包括:
第一WebSocket服务端与第一客户端建立WebSocket会话,所述第一WebSocket服务端属于WebSocket服务层,所述WebSocket服务层包含多个WebSocket服务端;
所述第一WebSocket服务端接收所述第一客户端发送的业务请求;
所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口,以使所述业务服务端处理所述业务请求,所述第一WebSocket服务端中存储有多个业务服务端的接口,多个所述业务服务端可处理至少两种业务类别;
所述第一WebSocket服务端接收所述业务服务端反馈的业务响应,所述业务响应由所述业务服务端处理所述业务请求后生成;
所述第一WebSocket服务端根据与所述第一客户端的WebSocket会话将所述业务响应下发至所述第一客户端。
2.根据权利要求1所述的通信传输方法,其特征在于,所述业务请求为向第二客户端发送数据消息;
所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口之后,还包括:
第二WebSocket服务端接收所述业务服务端发送的数据消息和所述第二客户端的用户信息,所述第二WebSocket服务端由所述业务服务端确定,所述第二WebSocket服务端属于所述WebSocket服务层;
所述第二WebSocket服务端根据所述用户信息确定是否与所述第二客户端已建立WebSocket会话;
若与所述第二客户端已建立WebSocket会话,则所述第二WebSocket服务端将所述数据消息下发至所述第二客户端。
3.根据权利要求2所述的通信传输方法,其特征在于,还包括:
若未与所述第二客户端建立WebSocket会话,则所述第二WebSocket服务端根据所述用户信息在所述WebSocket服务层中查找与所述第二客户端建立WebSocket会话的第三WebSocket服务端;
所述第二WebSocket服务端通过超文本传输协议将所述用户信息和所述数据消息发送至所述第三WebSocket服务端;
所述第三WebSocket服务端根据所述用户信息确定与所述第二客户端的WebSocket会话,并通过所述WebSocket会话将所述数据消息下发至所述第二客户端。
4.根据权利要求1所述的通信传输方法,其特征在于,所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口包括:
所述第一WebSocket服务端获取所述业务请求中的业务标识;
所述第一WebSocket服务端根据所述业务标识获取相应业务服务端的接口;
所述第一WebSocket服务端通过Feign调用所述业务服务端的接口。
5.根据权利要求1所述的通信传输方法,其特征在于,所述第一WebSocket服务端与第一客户端建立WebSocket会话之后,还包括:
所述第一WebSocket服务端将所述第一WebSocket服务端与所述第一客户端的会话连接关系发送至存储服务端进行存储,所述存储服务端中存储有所述WebSocket服务层中各所述WebSocket服务端与相应客户端建立的会话连接关系。
6.根据权利要求1所述的通信传输方法,其特征在于,所述业务请求包含去重标识;
所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口包括:
所述第一WebSocket服务端获取所述业务请求中的去重标识;
所述第一WebSocket服务端根据所述去重标识确定是否重复接收所述业务请求;
若未重复接收所述业务请求,则所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口。
7.一种基于WebSocket的通信传输装置,其特征在于,包括:
会话建立模块,配置于第一WebSocket服务端,用于与第一客户端建立WebSocket会话,所述第一WebSocket服务端属于WebSocket服务层,所述WebSocket服务层包含多个WebSocket服务端;
请求接收模块,配置于所述第一WebSocket服务端,用于接收所述第一客户端发送的业务请求;
接口调用模块,配置于所述第一WebSocket服务端,用于根据所述业务请求调用相应业务服务端的接口,以使所述业务服务端处理所述业务请求,所述第一WebSocket服务端中存储有多个业务服务端的接口,多个所述业务服务端可处理至少两种业务类别;
响应接收模块,配置于所述第一WebSocket服务端,用于接收所述业务服务端反馈的业务响应,所述业务响应由所述业务服务端处理所述业务请求后生成;
响应下发模块,配置于所述第一WebSocket服务端,用于根据与所述第一客户端的WebSocket会话将所述业务响应下发至所述第一客户端。
8.一种基于WebSocket的通信传输设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的基于WebSocket的通信传输方法。
9.一种基于WebSocket的通信传输系统,其特征在于,包括:WebSocket服务层,所述WebSocket服务层包含多个WebSocket服务端;
第一WebSocket服务端与第一客户端建立WebSocket会话,所述第一WebSocket服务端属于WebSocket服务层;
所述第一WebSocket服务端接收所述第一客户端发送的业务请求;
所述第一WebSocket服务端根据所述业务请求调用相应业务服务端的接口,以使所述业务服务端处理所述业务请求,所述第一WebSocket服务端中存储有多个业务服务端的接口,多个所述业务服务端可处理至少两种业务类别;
所述第一WebSocket服务端接收所述业务服务端反馈的业务响应,所述业务响应由所述业务服务端处理所述业务请求后生成;
所述第一WebSocket服务端根据与所述第一客户端的WebSocket会话将所述业务响应下发至所述第一客户端。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的基于WebSocket的通信传输方法。
CN202110044837.6A 2021-01-13 2021-01-13 基于WebSocket的通信传输方法、装置、设备、系统及存储介质 Active CN112769837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110044837.6A CN112769837B (zh) 2021-01-13 2021-01-13 基于WebSocket的通信传输方法、装置、设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110044837.6A CN112769837B (zh) 2021-01-13 2021-01-13 基于WebSocket的通信传输方法、装置、设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN112769837A true CN112769837A (zh) 2021-05-07
CN112769837B CN112769837B (zh) 2023-07-04

Family

ID=75700291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110044837.6A Active CN112769837B (zh) 2021-01-13 2021-01-13 基于WebSocket的通信传输方法、装置、设备、系统及存储介质

Country Status (1)

Country Link
CN (1) CN112769837B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760868A (zh) * 2021-09-13 2021-12-07 武汉联影智融医疗科技有限公司 数据处理方法、装置及存储服务系统
CN114025016A (zh) * 2021-10-18 2022-02-08 中国联合网络通信集团有限公司 一种数据转发方法、装置及存储介质
CN114172945A (zh) * 2021-11-26 2022-03-11 武汉烽火技术服务有限公司 一种模拟实现全双工即时通信方法与设备
CN115665222A (zh) * 2022-10-20 2023-01-31 上海电信科技发展有限公司 分布式socket数据交互方法
WO2023024589A1 (zh) * 2021-08-25 2023-03-02 荣耀终端有限公司 请求的处理方法及相关装置
CN115766840A (zh) * 2022-10-27 2023-03-07 浩云科技股份有限公司 一种基于单websocket链接通道的业务数据传输方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170331900A1 (en) * 2016-05-13 2017-11-16 Sap Se Clustering Websocket Communications With Configurable Master-Slave Servers
CN109246239A (zh) * 2018-10-19 2019-01-18 行吟信息科技(上海)有限公司 一种私信处理方法及系统
CN111031058A (zh) * 2019-12-23 2020-04-17 集奥聚合(北京)人工智能科技有限公司 基于WebSocket的分布式服务器集群交互方法及装置
CN111131443A (zh) * 2019-12-23 2020-05-08 中国平安财产保险股份有限公司 一种任务推送方法和系统
CN111343236A (zh) * 2020-02-07 2020-06-26 广州极晟网络技术有限公司 服务端与客户端进行通讯的方法、装置、通讯系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170331900A1 (en) * 2016-05-13 2017-11-16 Sap Se Clustering Websocket Communications With Configurable Master-Slave Servers
CN109246239A (zh) * 2018-10-19 2019-01-18 行吟信息科技(上海)有限公司 一种私信处理方法及系统
CN111031058A (zh) * 2019-12-23 2020-04-17 集奥聚合(北京)人工智能科技有限公司 基于WebSocket的分布式服务器集群交互方法及装置
CN111131443A (zh) * 2019-12-23 2020-05-08 中国平安财产保险股份有限公司 一种任务推送方法和系统
CN111343236A (zh) * 2020-02-07 2020-06-26 广州极晟网络技术有限公司 服务端与客户端进行通讯的方法、装置、通讯系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023024589A1 (zh) * 2021-08-25 2023-03-02 荣耀终端有限公司 请求的处理方法及相关装置
CN113760868A (zh) * 2021-09-13 2021-12-07 武汉联影智融医疗科技有限公司 数据处理方法、装置及存储服务系统
CN114025016A (zh) * 2021-10-18 2022-02-08 中国联合网络通信集团有限公司 一种数据转发方法、装置及存储介质
CN114025016B (zh) * 2021-10-18 2024-03-15 中国联合网络通信集团有限公司 一种数据转发方法、装置及存储介质
CN114172945A (zh) * 2021-11-26 2022-03-11 武汉烽火技术服务有限公司 一种模拟实现全双工即时通信方法与设备
CN114172945B (zh) * 2021-11-26 2023-05-26 武汉烽火技术服务有限公司 一种模拟实现全双工即时通信方法与设备
CN115665222A (zh) * 2022-10-20 2023-01-31 上海电信科技发展有限公司 分布式socket数据交互方法
CN115766840A (zh) * 2022-10-27 2023-03-07 浩云科技股份有限公司 一种基于单websocket链接通道的业务数据传输方法及装置

Also Published As

Publication number Publication date
CN112769837B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN112769837B (zh) 基于WebSocket的通信传输方法、装置、设备、系统及存储介质
US11856065B2 (en) Data transmission for service integration between a virtual private cloud and an intranet
JP4965574B2 (ja) 複数のプロセスにおけるポートの共有
CN111258627B (zh) 一种接口文档生成方法和装置
CN115004673B (zh) 消息推送方法、装置、电子设备及计算机可读介质
US8665860B2 (en) Relay device and method for continuing service
CN110557284B (zh) 基于客户端网关的数据聚合方法及装置
JP2005316993A (ja) ネットワーク上においてコンピュータ間でオブジェクトを共有するためのシステムおよび方法
TW200401201A (en) Secured and access controlled peer-to-peer resource sharing method and apparatus
CN108390950A (zh) 一种消息推送方法、装置及设备
CN111787079B (zh) 基于通信群组的通信方法、装置、服务器、系统及介质
CN110197075A (zh) 资源访问方法、装置、计算设备以及存储介质
US8984129B2 (en) Remote session management
WO2020224241A1 (zh) 一种云通信方法及装置、用户设备、网络设备
CN111427703A (zh) 工业数据实时展示方法及系统
WO2019242279A1 (zh) 一种消息处理方法及装置
US10133442B2 (en) Method and apparatus for accessing a chat room
CN109413118B (zh) 一种实现会话同步的方法、装置及存储介质、程序产品
CN107730380B (zh) 联名账户处理方法、系统及服务器
US10182119B2 (en) System and methods for facilitating communication among a subset of connections that connect to a web application
CN112799849B (zh) 一种数据处理方法、装置、设备及存储介质
WO2013111532A1 (ja) 管理システム、管理方法およびプログラム
CN113746909A (zh) 网络连接方法、装置、电子设备和计算机可读存储介质
US10108588B2 (en) Method and system for communicating between client pages
CN114124935A (zh) Ftp服务的实现方法、系统、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant