CN116192517A - 实现业务访问的方法、客户端、服务端网关及系统 - Google Patents

实现业务访问的方法、客户端、服务端网关及系统 Download PDF

Info

Publication number
CN116192517A
CN116192517A CN202310189992.6A CN202310189992A CN116192517A CN 116192517 A CN116192517 A CN 116192517A CN 202310189992 A CN202310189992 A CN 202310189992A CN 116192517 A CN116192517 A CN 116192517A
Authority
CN
China
Prior art keywords
server
message
client
gateway
service
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.)
Pending
Application number
CN202310189992.6A
Other languages
English (en)
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.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group 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 BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN202310189992.6A priority Critical patent/CN116192517A/zh
Publication of CN116192517A publication Critical patent/CN116192517A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/026Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using e-messaging for transporting management information, e.g. email, instant messaging or chat
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5093Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to messaging or chat services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文公开一种实现业务访问的方法、客户端、服务端网关及系统。所述应用于客户端的实现业务访问的方法包括:根据业务需求选择浏览器插件;所述浏览器插件包括第一插件和第二插件;调用所述第一插件与服务端网关建立长连接,基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息;调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器。本文能拓展web业务的应用场景。

Description

实现业务访问的方法、客户端、服务端网关及系统
技术领域
本文涉及但不限于计算机通信技术领域,尤其涉及一种实现业务访问的方法、客户端、服务器网关及系统。
背景技术
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种无状态的、基于TCP(Transmission Control Protocol,传输控制协议)的请求-响应模式的协议,请求只能由客户端发起并由服务器端进行响应。
很多网站为了实现推送技术,所用轮询(polling)的方式。轮询是在特定的时间间隔(如每秒)由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断地向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽资源。
在可视化平台中,尝尝存在一个页面几十个图表的场景,如果每个图表使用每秒轮训方式查询数据,则并发连接数会超过浏览器限制,导致请求排队、等待、积压。
因此一些场景(比如消息推送、通知、多人协作等)很难通过HTTP协议高效地实现。
发明内容
第一方面,本公开实施例提供了一种实现业务访问的方法,应用于客户端,包括:
根据业务需求选择浏览器插件;所述浏览器插件包括第一插件和第二插件;
调用所述第一插件与服务端网关建立长连接,基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息;调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器。
第二方面,本公开实施例提供了一种实现业务访问的方法,应用于服务端网关,包括:
与至少一个客户端建立长连接,保存客户端与长连接的对应关系;其中,长连接是客户端根据业务需求建立的,一个客户端的长连接数量为至少一个;
接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器;
接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息;其中,所述目标客户端为一个或多个。
第三方面,本公开实施例提供了一种客户端,包括:存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述实现业务访问的方法的步骤。
第四方面,本公开实施例提供了一种服务端网关,包括:存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述实现业务访问的方法的步骤。
第五方面,本公开实施例提供了一种实现业务访问的系统,包括:至少一个上述客户端和至少一个上述服务端网关。
第六方面,本公开实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述实现业务访问的方法的步骤。
本公开实施例提供的业务访问方法、客户端、服务端网关及系统,客户端根据业务需求选择浏览器插件;调用所述第一插件与服务端网关建立长连接,所述服务端网关与客户端之间可以基于长连接实现服务端消息的推送、客户端的并发访问等。在业务需求不需要长连接时,客户端还可以调用第二插件直接与业务服务器进行通信,从而简化业务流程。上述业务访问方法通过选择不同的浏览器插件拓展了web业务的应用场景。
附图说明
附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1为本公开实施例提供的一种实现业务访问的方法的流程图(客户端);
图2为本公开实施例提供的一种实现业务访问的方法的流程图(服务端网关);
图3为本公开实施例提供的一种客户端结构示意图;
图4为本公开实施例提供的一种服务端网关结构示意图;
图5为本公开实施例提供的一种实现业务访问的系统结构示意图;
图6为本公开实施例提供的另一种实现业务访问的系统结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本公开的实施例进行详细说明。注意,实施方式可以以多个不同形式来实施。所属技术领域的普通技术人员可以很容易地理解一个事实,就是方式和内容可以在不脱离本公开的宗旨及其范围的条件下被变换为各种各样的形式。因此,本公开不应该被解释为仅限定在下面的实施方式所记载的内容中。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。
本说明书中的“第一”、“第二”、“第三”等序数词是为了避免构成要素的混同而设置,而不是为了在数量方面上进行限定。
如图1所示,本公开实施例提供了一种实现业务访问的方法,应用于客户端,包括:
步骤S10,根据业务需求选择浏览器插件;所述浏览器插件包括第一插件和第二插件;
步骤S20,调用所述第一插件与服务端网关建立长连接,基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息;调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器。
上述实施例提供的业务访问方法,根据业务需求选择浏览器插件;调用所述第一插件与服务端网关建立长连接,所述服务端网关与客户端之间可以基于长连接实现服务端消息的推送、客户端的并发访问等。在业务需求不需要长连接时,客户端还可以调用第二插件直接与业务服务器进行通信,从而简化业务流程。上述业务访问方法通过选择不同的浏览器插件拓展了web业务的应用场景。
长连接是client(客户端)方与server(服务端)方先建立连接,连接建立后不断开,然后再进行报文发送和接收。短连接是client(客户端)方与server(服务端)方每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。
在一种示例性的实施方式中,所述第一插件包括:WebSocket协议插件;所述第二插件包括:超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)插件。
WebSocket协议是一种在单个TCP连接上进行全双工通信的协议。WebSocket协议允许服务端主动向客户端推送数据。在WebSocket API(Application ProgrammingInterface,应用程序编程接口)中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在一种示例性的实施方式中,根据业务需求选择浏览器插件,包括:
检测到预定事件,根据所述预定事件触发调用第一插件或第二插件;
所述预定事件包括以下任意一种:点击按钮、定时时间到和需要发送指令。
在一种示例性的实施方式中,基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息,包括:
通过所述第一插件提供的第一发布接口发布至少一个第一消息,由服务端网关将所述第一消息转发给对应的业务服务器;
通过所述第一插件提供的第一订阅接口订阅服务端网关发布的至少一个第二消息;其中,所述第二消息是服务端网关转发的来自业务服务器的消息。
第一插件通过向客户端暴露第一发布接口,能够方便客户端向业务服务器发送请求消息。第一插件通过向客户端暴露第一订阅接口,能够方便客户端接收业务服务器的推送数据。比如,客户端开展对多个对象的监控业务,在客户端订阅了服务端网关的消息后,业务服务器就可以通过服务端网关向客户端主动推送多个对象的监控数据了,这样就避免了客户端频繁向业务服务器发送对每个对象的查询请求消息,节省了业务服务器的通信带宽。
在一种示例性的实施方式中,根据业务需求选择浏览器插件,包括:
当业务需求为以下至少一种时,选择第一插件;
对业务服务器的并发访问请求数超过阈值;
对业务服务器的访问频率超过阈值;
需要业务服务器的推送服务。
在一种示例性的实施方式中,根据业务需求选择浏览器插件,包括:
当业务需求对业务服务器的访问频率低于阈值时,选择第二插件。
在其他的实时方式中,选择第一插件和第二插件的业务需求也可以根据实际需要灵活设置,并不限于上述示例提到的业务需求。
在一种示例性的实施方式中,调用所述第一插件与服务端网关建立长连接之前,所述方法还包括:
建立至少一个参数实例;将所述参数实例插入第一插件中。
在一种示例性的实施方式中,所述参数实例包括以下至少一种:
消息的标识;URL(Uniform Resource Locator,统一资源定位器);请求的方式;请求头;要发送的数据;消息内容的编码类型;消息的协议类型;推送模式;业务访问成功之后执行的回调函数;业务访问失败之后执行的回调函数;业务访问完成执行的回调函数。
在其他的实施方式中,参数实例可以根据实际需求灵活创建,并不限于上述示例提出的参数实例。
上述实施方式中,请求的方式包括:GET或POST。在客户端和服务器之间进行请求—响应时,两种最常被用到的方法是:GET和POST。GET是从指定的资源请求数据。POST是向指定的资源提交要被处理的数据。消息的协议类型包括:WebSocket协议。所述推送模式包括:广播推送或会话推送。其中,广播推送是向所有客户端推送,会话推送是向发起请求的一个或多个客户端推送。
在一种示例性的实施方式中,调用所述第一插件与服务端网关建立长连接后,所述方法还包括:
定时向服务端网关发送心跳消息,如果在定时时间到时已经接收到所述服务端网关的应答消息,则取消重连任务;如果在定时时间到时仍未收到所述服务端网关的应答消息,则调用所述第一插件与服务端网关重新建立新的长连接。
在一种示例性的实施方式中,调用所述第一插件与服务端网关建立长连接后,所述方法还包括:
向所述服务端网关上报客户端的核心指标。
在一种示例性的实施方式中,所述客户端的核心指标包括以下至少一种:客户端操作系统、客户端IP地址、客户端浏览器信息、客户端页面加载时长、客户端页面业务接口时长和客户端脚本运行是否正常。在其他的实施方式中,客户端的核心指标可以根据实际需要进行设定,并不限于上述示例中提供的指标。
在一种示例性的实施方式中,调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器,可以采用现有技术中基于HTTP协议的浏览器和服务器的常用通信方式,客户端与业务服务器每进行一次报文收发交易时才建立连接,交易完毕后立即断开所述连接。
如图2所示,本公开实施例提供了一种实现业务访问的方法,应用于服务端网关,包括:
步骤S10,与至少一个客户端建立长连接,保存客户端与长连接的对应关系;其中,长连接是客户端根据业务需求建立的,一个客户端的长连接数量为至少一个;
步骤S20,接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器;
步骤S30,接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息;其中,所述目标客户端为一个或多个。
上述实施例提供的业务访问方法,服务端网关与客户端之间建立长连接,长连接是客户端根据业务需求建立的,一个客户端可以建立一个或多个长连接,从而满足客户端并发业务的需求,并且由于长连接建立后可以一直保持,因此业务服务器可以通过服务端网关主动向客户端推送数据,从而实现了客户端与业务服务器之间的全双工通信,拓展了web业务的应用场景。
在一种示例性的实施方式中,接收到业务服务器发送的第二消息后,所述方法还包括:如果所述第二消息的目标客户端与本网关未建立长连接,则忽略所述第二消息。
在一种示例性的实施方式中,所述保存客户端与长连接的对应关系,包括:
建立会话维度的第一长连接关系表;所述第一长连接关系表中记录每个会话的所有长连接;其中,服务端网关在客户端首次建立长连接的时候创建会话。
在计算机中,尤其是在网络应用中,会话(Session)对象存储特定用户(客户端)会话所需的属性及配置信息。这样,当用户(客户端)在应用程序的Web页之间跳转时,存储在会话对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个会话对象。当会话过期或被放弃后,服务器将终止该会话。会话对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在会话对象中。
一个用户(客户端)可能会同时建立多个长连接,为了避免用户无限制地创建长连接,服务端网关在一个用户建立的长连接数量超过阈值时,禁止所述用户新建长连接并向所述用户返回错误消息。
在一种示例性的实施方式中,接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器,包括:
订阅客户端发送的第一消息,向所述客户端要访问的业务服务器发布所述第一消息;其中,所述客户端要访问的业务服务器能够通过订阅所述服务端网关发布的消息接收所述第一消息。
在一种示例性的实施方式中,接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息,包括:
订阅业务服务器发布的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则向所述目标客户端发布所述第二消息;其中,所述目标客户端能够通过订阅所述服务端网关发布的消息接收所述第二消息。
在一种示例性的实施方式中,与至少一个客户端建立长连接后,所述方法还包括:
定时接收客户端发送的心跳消息,如果在定时时间到之前已经收到所述客户端发送的心跳消息,则保持所述客户端的长连接不变;如果在定时时间到时仍未收到所述客户端发送的心跳消息,则关闭所述客户端的所有长连接,删除所述客户端对应的会话。
在一种示例性的实施方式中,与至少一个客户端建立长连接后,所述方法还包括:
监控服务端网关的性能指标和客户端的核心指标;
在服务端网关的性能指标和/或客户端的核心指标出现异常时进行报警。
在一种示例性的实施方式中,服务端网关的性能指标包括以下至少一种:用户的数量、长连接的数量和计算资源的数量。计算资源可以包括:虚拟机、CPU和内存等。在其他的实施方式中,服务端网关的性能指标可以根据实际需要进行设定,并不限于上述示例中提供的指标。
在一种示例性的实施方式中,所述客户端的核心指标包括以下至少一种:客户端操作系统、客户端IP地址、客户端浏览器信息、客户端页面加载时长、客户端页面业务接口时长和客户端脚本运行是否正常。在其他的实施方式中,客户端的核心指标可以根据实际需要进行设定,并不限于上述示例中提供的指标。
如图3所示,本公开实施例提供了一种客户端,包括:浏览器和至少一个业务模块;所述浏览器包括第一插件和第二插件;
所述业务模块,设置为根据业务需求选择浏览器插件;调用所述第一插件与服务端网关建立长连接,基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息;调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器。
上述实施例提供的客户端,业务模块根据业务需求选择浏览器插件;业务模块调用第一插件与服务端网关建立长连接,所述服务端网关与客户端之间可以基于长连接实现服务端消息的推送、客户端的并发访问等。在业务需求不需要长连接时,业务模块还可以调用第二插件直接与业务服务器进行通信,从而简化业务流程。上述实施例的客户端通过选择不同的浏览器插件拓展了web业务的应用场景。
在一种示例性的实施方式中,所述第一插件包括:WebSocket协议插件;所述第二插件包括:超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)插件。
业务模块是浏览器插件的调用者,也是运行在浏览器端的程序。业务模块可以实现人机交互,比如:接受登陆系统的用户的操作信息(如点击按钮、输入文本信息),输出业务相关的报文等。
在一种示例性的实施方式中,业务模块,是设置为采用以下方式根据业务需求选择浏览器插件:检测到预定事件,根据所述预定事件触发调用第一插件或第二插件;
所述预定事件包括以下任意一种:点击按钮、定时时间到和需要发送指令。
在一种示例性的实施方式中,业务模块,是设置为采用以下方式基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息:通过所述第一插件提供的第一发布接口发布至少一个第一消息,由服务端网关将所述第一消息转发给对应的业务服务器;通过所述第一插件提供的第一订阅接口订阅服务端网关发布的至少一个第二消息;其中,所述第二消息是服务端网关转发的来自业务服务器的消息。
在一种示例性的实施方式中,业务模块,是设置为采用以下方式根据业务需求选择浏览器插件:当业务需求为以下至少一种时,选择WebSocket协议插件;对业务服务器的并发访问请求数超过阈值;对业务服务器的访问频率超过阈值;需要业务服务器的推送服务。
在一种示例性的实施方式中,业务模块,是设置为采用以下方式根据业务需求选择浏览器插件:当业务需求对业务服务器的访问频率低于阈值时,选择HTTP协议插件。
在一种示例性的实施方式中,业务模块,还设置为建立至少一个参数实例;将所述参数实例插入WebSocket协议插件中。
在一种示例性的实施方式中,所述参数实例包括以下至少一种:
消息的标识;URL(Uniform Resource Locator,统一资源定位器);请求的方式;请求头;要发送的数据;消息内容的编码类型;消息的协议类型;推送模式;业务访问成功之后执行的回调函数;业务访问失败之后执行的回调函数;业务访问完成执行的回调函数。
上述实施方式中,请求的方式包括:GET或POST。在客户端和服务器之间进行请求—响应时,两种最常被用到的方法是:GET和POST。GET是从指定的资源请求数据。POST是向指定的资源提交要被处理的数据。消息的协议类型包括:WebSocket协议。所述推送模式包括:广播推送或会话推送。
在一种示例性的实施方式中,业务模块,还设置为调用所述第一插件与服务端网关建立长连接后,定时向服务端网关发送心跳消息,如果在定时时间到时已经接收到所述服务端网关的应答消息,则取消重连任务;如果在定时时间到时仍未收到所述服务端网关的应答消息,则调用所述第一插件与服务端网关重新建立新的长连接。
在一种示例性的实施方式中,业务模块,还设置为调用所述第一插件与服务端网关建立长连接后,向所述服务端网关上报客户端的核心指标。
在一种示例性的实施方式中,所述客户端的核心指标包括以下至少一种:客户端操作系统、客户端IP地址、客户端浏览器信息、客户端页面加载时长、客户端页面业务接口时长和客户端脚本运行是否正常。
在一种示例性的实施方式中,所述业务模块调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器,可以采用现有技术中基于HTTP协议的浏览器和服务器的常用通信方式,业务模块与业务服务器每进行一次报文收发交易时才建立连接,交易完毕后立即断开所述连接。
如图4所示,本公开实施例提供了一种服务端网关,包括:
连接建立模块100,设置为与至少一个客户端建立长连接,保存客户端与长连接的对应关系;其中,长连接是客户端根据业务需求建立的,一个客户端的长连接数量为至少一个;
消息转发模块200,设置为接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器;接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息;其中,所述目标客户端为一个或多个。
上述实施例提供的服务端网关,连接建立模块与客户端之间建立长连接,长连接是客户端根据业务需求建立的,一个客户端可以建立一个或多个长连接,从而满足客户端并发业务的需求,并且由于长连接建立后可以一直保持,因此业务服务器可以通过服务端网关主动向客户端推送数据,从而实现了客户端与业务服务器之间的全双工通信,拓展了web业务的应用场景。
在一种示例性的实施方式中,连接建立模块,还设置为接收到业务服务器发送的第二消息后,如果所述第二消息的目标客户端与本网关未建立长连接,则忽略所述第二消息。
在一种示例性的实施方式中,连接建立模块,是设置为采用以下方式保存客户端与长连接的对应关系:
建立会话维度的第一长连接关系表;所述第一长连接关系表中记录每个会话的所有长连接;其中,服务端网关在客户端首次建立长连接的时候创建会话。
在一种示例性的实施方式中,消息转发模块,是设置为采用以下方式接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器:订阅客户端发送的第一消息,向所述客户端要访问的业务服务器发布所述第一消息;其中,所述客户端要访问的业务服务器能够通过订阅所述服务端网关发布的消息接收所述第一消息。
在一种示例性的实施方式中,消息转发模块,是设置为采用以下方式接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息:订阅业务服务器发布的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则向所述目标客户端发布所述第二消息;其中,所述目标客户端能够通过订阅所述服务端网关发布的消息接收所述第二消息。
在一种示例性的实施方式中,连接建立模块,还设置为与至少一个客户端建立长连接后,定时接收客户端发送的心跳消息,如果在定时时间到之前已经收到所述客户端发送的心跳消息,则保持所述客户端的长连接不变;如果在定时时间到时仍未收到所述客户端发送的心跳消息,则关闭所述客户端的所有长连接,删除所述客户端对应的会话。
在一种示例性的实施方式中,连接建立模块,还设置为与至少一个客户端建立长连接后,监控服务端网关的性能指标和客户端的核心指标;在服务端网关的性能指标和客户端的核心指标出现异常时进行报警。
在一种示例性的实施方式中,服务端网关的性能指标包括以下至少一种:用户的数量、长连接的数量、计算资源的数量。计算资源可以包括:虚拟机、CPU和内存等。
在一种示例性的实施方式中,所述客户端的核心指标包括以下至少一种:客户端操作系统、客户端IP地址、客户端浏览器信息、客户端页面加载时长、客户端页面业务接口时长和客户端脚本运行是否正常。
本公开实施例提供了一种客户端,包括:存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述实施例中应用于客户端的实现业务访问的方法的步骤。
本公开实施例提供了一种服务端网关,包括:存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述实施例中应用于服务端网关的实现业务访问的方法的步骤。
如图5所示,本公开实施例提供了一种实现业务访问的系统,包括:至少一个上述实施例的客户端和至少一个上述实施例的服务端网关。
在一种示例性的实施方式中,所述实现业务访问的系统还包括:第一数据库;所述第一数据库由所有的服务端网关共享;
任意一个服务端网关,还设置为将客户端的会话信息保存在第一数据库中;当接收到客户端和/或业务服务器的消息后,从所述第一数据库中查询客户端的会话信息。
在服务端设置所有服务端网关共享的第一数据库,在第一数据库中保存所有客户端的会话所需的属性及配置信息,能够实现对所有客户端的会话管理。这样,当用户(客户端)在应用程序的Web页之间跳转时,存储在会话对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
在一种示例性的实施方式中,所述第一数据库为远程字典服务(RemoteDictionary Server,简称Redis)数据库。在其他的实施方式中,所述第一数据库也可以是其他类型的数据库。
如图6所示,在一种示例性的实施方式中,所述实现业务访问的系统还包括:消息中间件;所述至少一个客户端包括第一客户端和其他客户端;所述至少一个服务端网关包括第一服务端网关和其他服务端网关;
第一客户端,还设置为如果编辑页面触发数据变更,则调用第一插件向第一服务端网关发送第一消息,其中携带更新后的数据;
第一服务端网关,还设置为接收到第一消息,将所述第一消息发送给消息中间件;
消息中间件,设置为向所有服务端网关重新发布所述第一消息;
其他服务端网关,还设置为如果向所述消息中间件订阅了所述第一消息,则向从所述其他服务端网关订阅了所述第一消息的客户端转发所述第一消息;
其他客户端,还设置为接收到其他服务端网关转发的第一消息,对页面数据进行更新。
消息中间件可以在多个服务端网关之间共享消息,实现消息的广播。多个客户端在进行协同编辑时,通过消息中间件可以实现多个客户端的数据同步。
在服务端设置所有服务端网关共享的消息中间件,消息中间件可以在一个服务端网关发布消息后,再将所述消息向所有的服务端网关重新发布,由不同的服务端网关向各自的客户端发送消息,从而使得接入不同服务端网关的客户端之间同步消息,实现协同工作。
本公开实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述实现业务访问的方法的步骤。
下面以地理信息系统(Geographic Information System或Geo-Informationsystem,简称GIS)为例,说明上述实现业务访问的系统的具体应用。
示例1
以GIS路网场景为例,客户端浏览器打开网页版某个城市或区域的GIS路网,可视化看到道路、车流及交通指示灯等路网资源。假设业务服务器包括两个业务系统(交通指示灯管理系统和道路车辆定位系统),分别提供两种http协议API。
不同的业务需求在GIS系统中的关注点不同。比如,有的业务需求只关注交通指示灯的位置,由于该类信息很少发生变化,则客户端业务模块可以调用http插件(第二插件)与业务服务器建立短连接,基于所述短连接访问交通指示灯管理系统以获取交通指示灯的位置信息。
有的业务需求关注交通指示灯(如100个交通指示灯)的实时变化信息和道路车流热力(比如,1000辆车),希望优化红绿灯切换时间间隔,则客户端业务模块可以调用WebSocket插件(第一插件)与业务服务器建立长连接,基于所述长连接访问交通指示灯管理系统和道路车辆定位系统。
客户端业务模块调用第二插件进行业务访问的方法,可以包括以下步骤:
步骤S01,客户端业务模块调用WebSocket插件实例化WebSocket客户端,与服务端WebSocket网关建立长连接;
客户端业务模块是浏览器插件的调用者,也是运行在浏览器端的程序。客户端业务模块可以实现人机交互,比如:接受登陆系统的用户的操作信息(如点击按钮、输入文本信息),输出业务相关的报文等。
步骤S02,客户端业务模块调用WebSocket插件,入参分别携带http协议的交通指示灯状态查询接口(交通指示灯管理系统的接口),和http协议的车辆位置查询接口(道路车辆定位系统的接口),并设置每1秒请求一次(WebSocket请求);
步骤S03,服务端WebSocket网关收到客户端的WebSocket请求,根据请求中的源地址url向两个业务系统分别发送http请求;
步骤S04,两个业务系统收到http请求,将数据返回给服务端WebSocket网关;
步骤S05,服务端WebSocket网关收到业务系统返回的数据,进行WebSocket消息发布;
步骤S06,客户端WebSocket插件订阅服务端WebSocket网关的WebSocket消息,收到交通指示灯状态信息及道路车辆位置信息,并反馈给业务模块;
步骤S07,客户端业务模块将交通指示灯状态信息及道路车辆位置信息可视化显示。
示例2
以GIS气象站场景为例,业务服务器负责采集GIS气象站的多个气象测量设备(比如,温度传感器、辐照度传感器等)的测量数据,在GIS气象站浏览器页面已显示出若干气象站相关设备,业务需求是在GIS系统中观测温度信息。
不同的业务需求在GIS系统中的关注点不同。比如,有的业务需求是希望看到每天的最高气温和最低气温。由于一天才访问一次业务服务器,所以客户端业务模块可以调用http插件(第二插件)与业务服务器建立短连接,基于所述短连接获取温度传感器的温度数据。客户端可以在一天结束时向业务服务器发送一次http请求,业务服务器向客户端返回当天的最高气温和最低气温数据。
有的业务需求是希望看到每天内的温度变化详情(具体到几点几分发生了温度的变化),则客户端业务模块可以调用WebSocket插件(第一插件)与业务服务器建立长连接,基于所述长连接订阅温度变化请求,当服务端发现温度变化就向客户端发送温度数据,客户端收到温度数据就进行温度曲线绘制。由于一天内的温度变化是随机的,采用服务端推送的方式更新温度数据,比客户端周期性轮询服务器更加节省带宽资源。
客户端业务模块调用第二插件获取温度数据的方法,可以包括以下步骤:
步骤S01,客户端业务模块调用WebSocket插件实例化WebSocket客户端,与服务端WebSocket网关建立长连接;
步骤S02,用户在GIS气象页面,点击某个温度传感器,如【实时温度】按钮,客户端业务模块调用WebSocket插件发布“实时温度”消息;
步骤S03,服务端WebSocket网关订阅客户端发布的“实时温度”消息;
步骤S04,服务端WebSocket网关重新发布“实时温度”消息;
步骤S05,温度传感器订阅服务端WebSocket网关发布的“实时温度”消息,并将实时温度反馈给服务端WebSocket网关;
步骤S06,服务端WebSocket网关向客户端发布实时温度;
步骤S07,客户端WebSocket插件订阅实时温度,并将实时温度反馈给业务模块;
步骤S08,客户端业务模块收到实时温度,进行web页面可视化显示。
通过采用上述实施例提供的业务访问系统,可以实现GIS系统资源的管理及模拟、资源配置、数据采集与上报、可视化应用等,从而拓展GIS系统的Web应用场景。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
虽然本公开所揭露的实施方式如上,但所述的内容仅为便于理解本公开而采用的实施方式,并非用以限定本公开。任何本公开所属领域内的技术人员,在不脱离本公开所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本公开的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (15)

1.一种实现业务访问的方法,应用于客户端,包括:
根据业务需求选择浏览器插件;所述浏览器插件包括第一插件和第二插件;
调用所述第一插件与服务端网关建立长连接,基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息;调用所述第二插件与业务服务器建立短连接,基于所述短连接访问所述业务服务器。
2.如权利要求1所述的方法,其特征在于:
所述第一插件包括:WebSocket协议插件;所述第二插件包括:超文本传输协议HTTP插件。
3.如权利要求1所述的方法,其特征在于:
基于所述长连接向所述服务端网关发送至少一个第一消息,由所述服务端网关将所述至少一个第一消息转发给对应的业务服务器,接收所述服务端网关转发的来自所述业务服务器的第二消息,包括:
通过所述第一插件提供的第一发布接口发布至少一个第一消息,由服务端网关将所述第一消息转发给对应的业务服务器;
通过所述第一插件提供的第一订阅接口订阅服务端网关发布的至少一个第二消息;其中,所述第二消息是服务端网关转发的来自业务服务器的消息。
4.如权利要求1所述的方法,其特征在于:
根据业务需求选择浏览器插件,包括:
当业务需求为以下至少一种时,选择第一插件;
对业务服务器的并发访问请求数超过阈值;
对业务服务器的访问频率超过阈值;
需要业务服务器的推送服务。
5.如权利要求1所述的方法,其特征在于:
调用所述第一插件与服务端网关建立长连接后,所述方法还包括:
定时向服务端网关发送心跳消息,如果在定时时间到时已经接收到所述服务端网关的应答消息,则取消重连任务;如果在定时时间到时仍未收到所述服务端网关的应答消息,则调用所述第一插件与服务端网关重新建立新的长连接。
6.一种实现业务访问的方法,应用于服务端网关,包括:
与至少一个客户端建立长连接,保存客户端与长连接的对应关系;其中,长连接是客户端根据业务需求建立的,一个客户端的长连接数量为至少一个;
接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器;
接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息;其中,所述目标客户端为一个或多个。
7.如权利要求6所述的方法,其特征在于:
所述保存客户端与长连接的对应关系,包括:
建立会话维度的第一长连接关系表;所述第一长连接关系表中记录每个会话的所有长连接;其中,服务端网关在客户端首次建立长连接的时候创建会话。
8.如权利要求6所述的方法,其特征在于:
接收到任意一个客户端发送的第一消息,将所述第一消息转发给所述客户端要访问的业务服务器,包括:
订阅客户端发送的第一消息,向所述客户端要访问的业务服务器发布所述第一消息;其中,所述客户端要访问的业务服务器能够通过订阅所述服务端网关发布的消息接收所述第一消息。
9.如权利要求6所述的方法,其特征在于:
接收到业务服务器发送的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则基于所述长连接向所述目标客户端转发所述第二消息,包括:
订阅业务服务器发布的第二消息,如果所述第二消息的目标客户端与本网关已经建立长连接,则向所述目标客户端发布所述第二消息;其中,所述目标客户端能够通过订阅所述服务端网关发布的消息接收所述第二消息。
10.如权利要求6所述的方法,其特征在于:
接收到业务服务器发送的第二消息后,所述方法还包括:如果所述第二消息的目标客户端与本网关未建立长连接,则忽略所述第二消息。
11.一种客户端,包括:存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述权利要求1-5中任一项所述的实现业务访问的方法的步骤。
12.一种服务端网关,包括:存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述权利要求6-10中任一项所述的实现业务访问的方法的步骤。
13.一种实现业务访问的系统,包括:
至少一个上述权利要求11所述的客户端和至少一个上述权利要求12所述的服务端网关。
14.如权利要求13所述的系统,其特征在于,所述系统还包括消息中间件;所述至少一个客户端包括第一客户端和其他客户端;所述至少一个服务端网关包括第一服务端网关和其他服务端网关;
第一客户端,还设置为如果编辑页面触发数据变更,则调用第一插件向第一服务端网关发送第一消息,其中携带更新后的数据;
第一服务端网关,还设置为接收到第一消息,将所述第一消息发送给消息中间件;
消息中间件,设置为向所有服务端网关重新发布所述第一消息;
其他服务端网关,还设置为如果向所述消息中间件订阅了所述第一消息,则向从所述其他服务端网关订阅了所述第一消息的客户端转发所述第一消息;
其他客户端,还设置为接收到其他服务端网关转发的第一消息,对页面数据进行更新。
15.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-10中任一项所述的实现业务访问的方法的步骤。
CN202310189992.6A 2023-02-23 2023-02-23 实现业务访问的方法、客户端、服务端网关及系统 Pending CN116192517A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310189992.6A CN116192517A (zh) 2023-02-23 2023-02-23 实现业务访问的方法、客户端、服务端网关及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310189992.6A CN116192517A (zh) 2023-02-23 2023-02-23 实现业务访问的方法、客户端、服务端网关及系统

Publications (1)

Publication Number Publication Date
CN116192517A true CN116192517A (zh) 2023-05-30

Family

ID=86440232

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310189992.6A Pending CN116192517A (zh) 2023-02-23 2023-02-23 实现业务访问的方法、客户端、服务端网关及系统

Country Status (1)

Country Link
CN (1) CN116192517A (zh)

Similar Documents

Publication Publication Date Title
JP5232876B2 (ja) フィードをベースにした移動端末へのコンテンツの自動送信技術
US7761522B2 (en) System and method for providing asynchronous notifications using synchronous data sources
US20080162667A1 (en) Method and system for rapid dissemination of public announcements
CN110413418B (zh) 缓存同步装置及方法,缓存同步系统、电子设备
CN103795689A (zh) 资源订阅方法及装置
CN112788126B (zh) 资源下载方法、装置、服务器和存储介质
CN112711635B (zh) 一种分布式物联设备跨区域数据一致性的方法和服务集群
CN114625565A (zh) 数据容灾备份方法、统一数据管理udm实体和存储介质
US20210314406A1 (en) Communication Method and System under Micro-Service Architecture
CN107872538B (zh) 解耦tcp长连接的业务处理方法、反向代理和业务服务器
KR20100112979A (ko) 휴대 광고 시스템에서 휴대 광고 서비스 제공 방법 및 장치
CN116192517A (zh) 实现业务访问的方法、客户端、服务端网关及系统
CN112217649A (zh) 终端设备管理方法、服务器及终端设备
CN108259576B (zh) 一种软硬件实时信息传输系统和方法
CN113746851B (zh) 一种支持实时解析grpc请求的代理系统和方法
KR20090028543A (ko) 사용자 에이전트 프로파일 정보를 보고하는 방법, 시스템 및 장치
CN109600452B (zh) 服务器集群、消息推送方法及相关服务器
CN114268631A (zh) 低延迟网络系统及其通信连接方法及可读存储介质
CN115221443B (zh) 信息传输方法、装置、系统、电子设备及存储介质
CN114500660B (zh) 请求处理方法、装置、设备及计算机可读存储介质
CN114302244B (zh) 信息交互方法、装置、服务器和存储介质
WO2023077907A1 (en) Methods and apparatuses for same event subscription for multi sessions of one ue
US11876876B2 (en) Communication conversion method, gateway device, network system and computer medium
US11936728B2 (en) Method for the file distribution between interconnected 3GPP MCData systems
CN102387026A (zh) 基于泛关系链模型的系统中用户资料的管理方法及装置

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