CN107395686B - 切换长连接的方法、设备和*** - Google Patents
切换长连接的方法、设备和*** Download PDFInfo
- Publication number
- CN107395686B CN107395686B CN201710505975.3A CN201710505975A CN107395686B CN 107395686 B CN107395686 B CN 107395686B CN 201710505975 A CN201710505975 A CN 201710505975A CN 107395686 B CN107395686 B CN 107395686B
- Authority
- CN
- China
- Prior art keywords
- terminal
- information
- long connection
- web server
- subscription
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种长连接切换的方法、设备和***。该长连接基于web Socket建立。根据本发明的方案,当服务器接收来自终端的请求信息并处理完成后,需要向终端发送目标信息时,查询本地是否存在与该终端对应的长连接;当不存在与所述终端对应的长连接时,将转发信息发送至订阅中心设备,其中,所述转发信息包括所述目标信息与所述终端的终端信息。本发明的优点在于:确保业务请求处理结果信息在终端切换长连接服务器后仍能准确接收,实现终端的长连接无缝切换;允许单服务器本地长连接管理独立存在,简化***在开发、测试和轻量级生产环境部署的复杂度;允许单一用户多终端同时登录情况下,确保在发出请求的终端长连接中接收处理结果信息。
Description
技术领域
本发明涉及计算机领域,尤其涉及切换长连接的方法、设备和***。
背景技术
当前,基于浏览器访问的B/S架构***中,常规的操作是由用户在浏览器端发起请求,服务器端在接受请求后,将处理结果反馈到前端页面,即常见的请求-响应模式。而某些业务场景需要由后端服务器主动发送消息通知前端用户,即用户浏览器终端是被动的消息接收方,常见的有信息提醒,异步处理结果通知等。
因此现有的方案中通过建立客户端与服务端的网络长连接通道来解决该问题。但是,由于当前的服务端多采用多机集群的模式,而建立长连接时,通常只能由集群中的某一个特定服务器来与客户端建立通讯,因此,当业务操作过程中连接发生中断时,再次连接的服务器可能并非是之前的服务器,从而可能导致进行业务处理的服务器不一定是与客户端连接的服务器。例如当用户通过网页发出请求时浏览器连接的是服务器A,而由于用户移动导致互联网协议地址(IP, Internet Protocol)变更(例如4G手机基站更换或者楼层间无线网络的统标识码(SID, System Identification Number)切换)导致双向通讯服务器连接切换到了服务器B,而服务器A处理完业务请求无法发送信息给浏览器。从而导致用户需要丢失处理结果信息或重复提交业务请求。同时在B/S架构模式中,允许同一用户账号多浏览器终端登录,多个不同终端所建立的长连接有可能对应后端多台服务器,因此在某浏览器终端所提交的业务处理请求,需要在长连接中断切换到新服务器后仍能准确定位并发送处理结果,而不会错误的通知到该用户账号其它的浏览器终端。
发明内容
有鉴于此,本发明的目的是提供一种切换长连接的方法、设备和***。
根据本发明的一个方面,提供了一种服务器上切换长连接的方法,其中,所述长连接基于WebSocket建立,所述方法包括:
-当需要向一终端发送目标信息时,查询本地是否存在与该终端对应的长连接;
-当不存在与所述终端对应的长连接时,将转发信息发送至订阅中心设备,其中,所述转发信息包括所述目标信息与所述终端的终端信息。
根据本发明的又一个方面,还提供了一种订阅中心设备上用于辅助切换长连接的方法,其中,所述长连接基于websocket建立,其中,所述方法包括以下步骤:
-接收来自一服务器的转发信息,其中所述转发信息包括目标信息和终端信息;
-基于所述终端信息,在本地的长连接订阅信息中查询,以确定与该终端信息具有长连接的另一服务器;
-将所述转发信息发送至所述另一服务器,以供所述另一服务器基于自身与所述终端的长连接,发送所述目标信息。
根据本发明的一个方面,提供了一种服务器上切换长连接的切换装置,其中,所述长连接基于WebSocket建立,所述切换装置包括:
查询装置,用于当需要向一终端发送目标信息时,查询本地是否存在与该终端对应的长连接;
第一发送装置,用于当不存在与所述终端对应的长连接时,将转发信息发送至订阅中心设备,其中,所述转发信息包括所述目标信息与所述终端的终端信息。其中,所述切换装置还包括第二发送装置,以及第一接收装置,所述第一接收装置用于接收来自订阅中心设备的转发信息,其中,所述转发信息包括终端信息和目标信息。
根据本发明的又一个方面,提供了一种订阅中心设备上用于辅助切换长连接的辅助装置,其中,所述长连接基于websocket建立,其中,所述辅助装置包括:
第二接收装置,用于接收来自一服务器的转发信息,其中所述转发信息包括目标信息和终端信息;
第二查询装置,用于基于所述终端信息,在本地的长连接订阅信息中查询,以确定与该终端信息具有长连接的另一服务器;
第三发送装置,用于将所述转发信息发送至所述另一服务器,以供所述另一服务器基于自身与所述终端的长连接,发送所述目标信息。
根据本发明的又一个方面,提供了一种用于提供web服务的网络***,其中,所述网络***包括所述服务器,以及所述订阅中心设备。
与现有技术相比,本发明具有以下优点:首先确保业务请求处理结果信息在终端切换长连接服务器后仍能准确接收,保证用户所请求业务顺畅执行,实现终端的长连接无缝切换,提高用户体验;其次允许单服务器本地长连接管理独立存在,简化***在开发、测试和轻量级生产环境部署的复杂度;最后允许单一用户多终端同时登录并在各终端长连接中接收对应处理结果信息。
附图说明
本发明的其它特点、特征、优点和益处通过以下结合附图的详细描述将变得更加显而易见。
图1示意出了根据本发明一个实施例的切换长连接的场景示意图;
图2示意出了根据本发明一个实施例的切换长连接的部分方法流程的流程示意图。
图3示意出了根据本发明一个实施例的切换长连接的部分***结构的装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
其中,根据本发明用于提供web服务的网络***包括至少一个服务器和订阅中心设备,优选地,根据本发明的网络***还包括至少一个终端。
其中,所述服务器、订阅中心设备和终端均可通过计算机设备来实现。所述计算机设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述计算机设备包括用户设备和网络设备。
其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
其中,所述用户设备包括但不限于任何一种可与用户触控方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、PDA、游戏机、或IPTV等。
优选地,根据本发明的终端为用户设备。
其中,根据本发明的终端可以位于PC等非移动终端上,也可以位于移动终端上。
优选地,根据本发明的服务器和订阅中心设备均为网络设备。
优选地,所述服务器为web服务器。
优选地,所述订阅中心设备可由web服务器来实现。
其中,所述网络设备和用户设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。需要说明的是,所述用户设备、网络设备以及网络仅为举例,其他现有的或今后可能出现网络设备以及网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
参照图1和图2,图1示意出了根据本发明一个实施例的切换长连接的场景示意图;图2示意出了根据本发明一个实施例的切换长连接的方法流程图。
根据本发明的方法,包括由服务器执行的步骤S101和步骤S102以及由订阅中心设备执行的步骤S201、步骤S202和步骤S203。
在步骤S101中,当需要向一终端发送目标信息时,服务器查询本地是否存在与该终端对应的长连接。
优选地,所述目标信息由web服务器基于来自终端的请求信息所生成。
具体地,web服务器基于自身已建立的长连接通道,以及所述终端的终端信息进行判断,以确定是否存在与该终端对应的长连接。
其中,所述终端信息包括用于唯一指示该终端的信息。优选地,该终端信息包括但不限于以下至少任一种:
1)终端用户信息;例如,用户账号信息,又例如,用户账号和终端标识信息等。
2)终端网页信息,例如,网页的链接信息等。
3)请求标识信息,请求标识信息用于唯一标识来自一长连接的请求;例如,在点击按钮生成向服务器发送处理请求时,随机生成一个预定长度的请求ID,标志来自当前长连接的请求信息,以供服务器基于该请求ID来确定反馈至的终端。
优选地, web服务器获取所与所述终端对应的目标信息的方式包括:
1)基于来自所述终端的请求信息来生成所述目标信息;
2)接收来自集群中的其他服务器在订阅消息发布中心的所述终端信息以及与其对应的目标信息。
接着,当web服务器判断不存在与所述终端对应的长连接时,将转发信息发送至所述订阅中心设备。
其中,所述转发信息包括所述目标信息与所述终端的终端信息。
优选地,所述转发信息中还包括请求信息。
其中,所述订阅中心设备用于维护长连接订阅信息,其中,所述长连接订阅信息包括至少一项长连接信息,其中,长连接信息至少包括该长连接对应的终端信息和服务器的标识信息。
其中,所述订阅中心设备可与所述web服务器通过网络通信。其中,所述订阅中心设备可与所述web服务器属于同一个局域网中,或者分属于不同的局域网中。
根据本发明的一个优选实施例,当web服务器确定本地存在与该终端对应的长连接时,通过该长连接直接向所述终端发送所述目标信息。
接着,在步骤S201中,订阅中心设备接收来自一web服务器的转发信息。
接着,在步骤S202中,订阅中心设备基于所述终端信息,在本地的长连接订阅信息中查询,以确定与该终端信息具有长连接的另一web服务器。
接着,在步骤S203中,订阅中心设备将所述转发信息发送至所述另一服务器,以供所述另一服务器基于自身与所述终端的长连接,发送所述目标信息。
根据本发明的优选方案,所述方法还包括由web服务器执行的步骤S103(图未示),由订阅中心设备执行的步骤S204(图未示)和步骤S205(图未示)。
在步骤S103中,当web服务器与一终端建立长连接时,向所述订阅中心设备发送长连接添加请求,以将所述终端与所述服务器的长连接信息添加至所述订阅中心设备所维护的长连接订阅信息中。
接着,在步骤S204中,订阅中心设备接收来自web服务器的长连接添加请求。
接着,在步骤S205中,订阅中心设备将所述标注信息以及所述终端信息对应的长连接信息添加至长连接订阅信息中。
根据本发明的又一优选方案,所述方法还包括由web服务器执行的步骤S104(图未示),由订阅中心设备执行的步骤S206(图未示)和步骤S207(图未示)。
在步骤S104中,当web服务器与一终端的长连接中断时,向所述订阅中心设备发送长连接删除请求,以将所述终端与所述服务器的长连接信息从所述订阅中心设备所维护的长连接订阅信息中删除。
接着,在步骤S206中,订阅中心设备接收来自web服务器的长连接删除请求。
接着,在步骤S207中,订阅中心设备将所述终端与所述服务器的长连接信息从所述订阅中心设备所维护的长连接订阅信息中删除。
根据本发明的一个示例,结合图1和图2,服务器集群中包括server1、server2、server3三个服务器和订阅中心设备server4,服务器集群采用终端用户信息对长连接进行区分。用户userA先与服务器server1建立了长连接con_1,此时服务器server1的连接池中增加了用户userA的信息,作为该长连接con_1的连接信息,在订阅消息发布中心注册;随后,用户userA通过该长连接con_1向服务器server1提交了查询请求req1,接着,由于用户userA从一幢楼移动到了另一幢楼,其原先的长连接con_1中断(其中,图1中UserA与服务器server1之间的虚线示意出了已中断的长连接con_1),此时,服务器server1在连接con_1中断时通知订阅中心设备server4,在其维护的长连接注册信息中删除服务器server1与终端userA的长连接con_1;接着,用户UserA通过另一幢楼的网络重新与服务器server2建立了长连接con_2(其中,图1中用户UserA与服务器server2之间的实线连接线示意出了长连接con_2),此时,服务器server2通知订阅中心设备server4在其维护的长连接注册信息中增加服务器server2与终端userA的长连接con_2。同时,服务器server1任然继续基于查询请求req1执行搜索操作,并获得与用户UserA对应的查询结果result_1。
此时,服务器server1执行步骤S101来查询自身当前的长连接中不存在与用户UserA对应的长连接,则服务器server1继续执行步骤S102,将包含终端信息“userA”、请求信息“req1”其对应的查询结果“result_1”的转发信息发送到订阅中心设备server4。
订阅中心设备server4在步骤S201中接收到来自服务器server1的转发信息后,执行步骤S202,在本地的长连接注册信息中查询,确定当前与终端UserA之间具有长连接的是web服务器server2,并执行步骤S203将转发信息发送至web服务器server2。
当服务器server2中查询到终端信息“userA”时,确定当前存在与userA对应的长连接con_2,并通过该长连接con_2,将查询结果result_1发送给该用户userA,从而使得终端userA虽然变更了长连接,仍然能够顺利的获得查询结果,而无需重复提交请求。
优选地,根据本发明的方案,用户可选择服务器采用哪种终端信息对长连接进行区分。
继续对本发明的示例进行说明,用户选择采用终端网页信息对长连接进行区分,用户userB在终端页面page1上与服务器server2建立连接登录后,又通过终端页面page2打开了业务网页,此时,服务器server2通知订阅中心设备server4增加了两条长连接信息:server2与link1,以及server2和link2;其中,link1为网页page1的链接信息,link2为网页page2的链接信息。接着,用户userB通过page2向服务器serve2提交了获取用户私人消息的请求req_2,随后由于误操作而将page2关掉。此时,订阅中心设备基于来自服务器server2的请求,删除了server2与link2这一长连接信息;随后,用户userB在另一个机器上与服务器server3建立了长连接,登录并重新打开终端页面page2,此时,订阅中心设备根据服务器server3的请求,在长连接注册信息中增加了server3与page2的这一长连接信息。
此时,服务器server2在执行了与来自link2的请求req_2对应的操作后获得用户userB的私人消息列表result_2,并执行步骤S101在本地连接池查询,发现不存在与page1对应的长连接,进而执行步骤S102将终端信息link2和目标信息result_2发送给订阅消息发布中心服务器server4,接着,订阅中心设备server4通过在长连接注册信息中查询link2,确定其对应的服务器为服务器server3,并执行步骤S203将result_2以及终端信息link2发送到server3,服务器sever3检查本地长连接,进而通过与link2对应的长连接,将目标信息result_2发送至终端网页page2中。
与现有技术相比,本发明具有以下优点:首先确保业务请求处理结果信息在终端切换长连接服务器后仍能准确接收,保证用户所请求业务顺畅执行,实现终端的长连接无缝切换,提高用户体验;其次允许单服务器本地长连接管理独立存在,简化***在开发、测试和轻量级生产环境部署的复杂度;最后允许单一用户多终端同时登录并在各终端长连接中接收对应处理结果信息。
参照图1和图3,图1示意出了根据本发明一个实施例的切换长连接的场景示意图;图3示意出了根据本发明一个实施例的切换长连接的***结构的装置示意图。
其中,根据本发明的方案通过服务器中的切换装置100以及订阅中心设备的辅助装置200来实现。
其中,根据本发明的切换装置包括第一查询装置110和第一发送装置120,根据本发明的辅助装置200包括第二接收装置210,第二查询装置220和第三发送装置230。其中,所述切换装置还包括第二发送装置和第一接收装置,所述第一接收装置用于接收来自订阅中心设备的转发信息,其中,所述转发信息包括终端信息和目标信息。
当服务器需要向一终端发送目标信息时,第一查询装置110查询本地是否存在与该终端对应的长连接。
优选地,所述目标信息由web服务器基于来自终端的请求信息所生成。
具体地,web服务器基于自身已建立的长连接通道,以及所述终端的终端信息进行判断,以确定是否存在与该终端对应的长连接。
其中,所述终端信息包括用于唯一指示该终端的信息。优选地,该终端信息包括但不限于以下至少任一种:
1)终端用户信息;例如,用户账号信息,又例如,用户账号和终端标识信息等。
2)终端网页信息,例如,网页的链接信息等。
3)请求标识信息,请求标识信息用于唯一标识来自一长连接的请求;,在点击按钮生成向服务器发送处理请求时,随机生成一个预定长度的请求ID,标志来自当前长连接的请求信息,以供服务器基于该请求ID来确定反馈至的终端。
优选地, web服务器获取所与所述终端对应的目标信息的方式包括:
1)基于来自所述终端的请求信息来生成所述目标信息;
2)接收来自订阅中心设备消息发布中心的终端信息以及与其对应的目标信息。
接着,当第一查询装置110判断不存在与所述终端对应的长连接时,第一发送装置120将转发信息发送至所述订阅中心设备。
其中,所述转发信息包括所述目标信息与所述终端的终端信息。
优选地,所述转发信息中还包括请求信息。
其中,所述订阅中心设备用于维护长连接订阅信息,其中,所述长连接订阅信息包括至少一项长连接信息,其中,长连接信息至少包括该长连接对应的终端信息和服务器的标识信息。
其中,所述订阅中心设备可与所述web服务器通过网络通信。其中,所述订阅中心设备可与所述web服务器属于同一个局域网中,或者分属于不同的局域网中。
根据本发明的一个优选实施例,当第一查询装置110确定本地存在与该终端对应的长连接时,第二发送装置140通过该长连接直接向所述终端发送所述目标信息。
接着,第二接收装置210接收来自一服务器的转发信息。
接着,第二查询装置220基于所述终端信息,在本地的长连接订阅信息中查询,以确定与该终端信息具有长连接的另一服务器。
接着,第三发送装置230将所述转发信息发送至所述另一服务器,以供所述另一服务器基于自身与所述终端的长连接,发送所述目标信息。
根据本发明的优选方案,当web服务器与一终端建立长连接时,切换装置100向所述订阅中心设备发送长连接添加请求,以将所述终端与所述服务器的长连接信息添加至所述订阅中心设备所维护的长连接订阅信息中。接着,辅助装置200中的第二接收装置(图未示)接收来自服务器的长连接添加请求;辅助装置200中的添加装置(图未示)将所述标注信息以及所述终端信息对应的长连接信息添加至长连接订阅信息中。
根据本发明的又一优选方案,当web服务器与一终端的长连接中断时,切换装置100发送长连接删除请求,以将所述终端与所述服务器的长连接信息从所述订阅中心设备所维护的长连接订阅信息中删除;接着,第三接收装置(图未示)接收来自web服务器的长连接删除请求;删除装置(图未示)将所述终端与所述服务器的长连接信息从所述订阅中心设备所维护的长连接订阅信息中删除。
根据本发明的一个示例,结合图1和图3,服务器集群中包括server1、server2、server3三个服务器和订阅中心设备server4,服务器集群采用终端用户信息对长连接进行区分。用户userA先与服务器server1建立了长连接con_1,此时服务器server1的连接池中增加了用户userA的信息,作为该长连接con_1的连接信息,在订阅消息发布中心注册;随后,用户userA通过该长连接con_1向服务器server1提交了查询请求req1,接着,由于用户userA从一幢楼移动到了另一幢楼,其原先的长连接con_1中断(其中,图1中UserA与服务器server1之间的虚线示意出了已中断的长连接con_1),此时,服务器server1的切换装置100在连接con_1中断时通知订阅中心设备server4,在其维护的长连接注册信息中删除服务器server1与终端userA的长连接con_1;接着,用户UserA通过另一幢楼的网络重新与服务器server2建立了长连接con_2(其中,图1中用户UserA与服务器server2之间的实线连接线示意出了长连接con_2),此时,服务器server2的切换装置100通知订阅中心设备server4在其维护的长连接注册信息中增加服务器server2与终端userA的长连接con_2。同时,服务器server1仍然继续基于查询请求req1执行搜索操作,并获得与用户UserA对应的查询结果result_1。
此时,服务器server1的第一查询装置110查询到自身当前的长连接中不存在与用户UserA对应的长连接,则服务器server1的第一发送装置120将包含终端信息“userA”、请求信息“req1”其对应的查询结果“result_1”的转发信息发送到订阅中心设备server4。
订阅中心设备server4的第二接收装置210接收到来自服务器server1的转发信息后,其第二查询装置220在本地的长连接注册信息中查询,确定当前与终端UserA之间具有长连接的是web服务器server2,并由订阅中心设备server4中的第三发送装置230将转发信息发送至web服务器server2。
当服务器server2的第一查询装置110查询到终端信息“userA”时,确定当前存在与userA对应的长连接con_2,则服务器server2的第二发送装置140通过该长连接con_2,将查询结果result_1发送给该用户userA。
从而使得终端userA虽然变更了长连接,仍然能够顺利的获得查询结果,而无需重复提交请求。
优选地,根据本发明的方案,用户可选择服务器采用哪种终端信息对长连接进行区分。
继续对本发明的示例进行说明,用户选择采用终端网页信息对长连接进行区分,用户userB在终端页面page1上与服务器server2建立连接登录后,又通过终端页面page2打开了业务网页,此时,服务器server2的切换装置100通知订阅中心设备server4增加了两条长连接信息:server2与link1,以及server2和link2;其中,link1为网页page1的链接信息,link2为网页page2的链接信息。接着,用户userB通过page2向服务器serve2提交了获取用户私人消息的请求req_2,随后由于误操作而将page2关掉。此时,订阅中心设备的删除装置(图未示)基于来自服务器server2的请求,删除了server2与link2这一长连接信息;随后,用户userB在另一个机器上与服务器server3建立了长连接,登录并重新打开终端页面page2,此时,订阅中心设备的添加装置(图未示)根据第二接收装置(图未示)接收到的,来自服务器 server3的请求,在长连接注册信息中增加了server3与page2的这一长连接信息。
此时,服务器server2在执行了与来自link2的请求req_2对应的操作后获得用户userB的私人消息列表result_2,接着,服务器server2的第一查询装置110在本地连接池查询,发现不存在与page1对应的长连接,则其第一发送装置120将终端信息link2和目标信息result_2发送给订阅消息发布中心服务器server4,接着,订阅中心设备server4的第二接收装置收到前述信息后,其第二查询装置220通过在长连接注册信息中查询link2,确定其对应的服务器为服务器server3,并由第三发送装置230将result_2以及终端信息link2发送到server3,服务器sever3的第一查询装置110检查本地长连接,进而由第二发送装置140通过与link2对应的长连接,将目标信息result_2发送至终端网页page2中。
与现有技术相比,本发明具有以下优点:首先确保业务请求处理结果信息在终端切换长连接服务器后仍能准确接收,保证用户所请求业务顺畅执行,实现终端的长连接无缝切换,提高用户体验;其次允许单服务器本地长连接管理独立存在,简化***在开发、测试和轻量级生产环境部署的复杂度;最后允许单一用户多终端同时登录并在各终端长连接中接收对应处理结果信息。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (8)
1.一种在***中切换长连接的方法,其中,所述***包括web服务器和订阅中心设备,所述长连接基于WebSocket建立,所述方法包括:
当需要向一终端发送目标信息时,所述web服务器查询本地是否存在与所述终端对应的长连接,其中,所述web服务器基于自身已建立的长连接通道,以及所述终端的终端信息进行判断,以确定是否存在与所述终端对应的长连接,所述目标信息由所述web服务器基于来自所述终端的请求信息所生成;
当不存在与所述终端对应的长连接时,所述web服务器将转发信息发送至所述订阅中心设备,其中,所述转发信息包括所述目标信息与所述终端的终端信息,其中,所述订阅中心设备与所述web服务器通过网络通信,用于维护长连接订阅信息,所述长连接订阅信息包括至少一项长连接信息,所述长连接信息至少包括所述长连接对应的终端信息和所述web服务器的标识信息;
当所述web服务器与一终端的长连接中断时,所述web服务器向所述订阅中心设备发送长连接删除请求,以将所述终端与所述web服务器的长连接信息从所述订阅中心设备所维护的长连接订阅信息中删除;
当存在与所述终端对应的长连接时,所述web服务器将所述目标信息通过所述长连接发送至所述终端;所述订阅中心设备接收来自所述web服务器的转发信息,基于所述终端信息,在本地的长连接订阅信息中查询,以确定与该终端信息具有长连接的另一web服务器,将所述转发信息发送至所述另一web服务器,以供所述另一web服务器基于自身与所述终端的长连接,发送所述目标信息。
2.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:
所述web服务器接收来自订阅中心设备的转发信息,其中,所述转发信息包括终端信息和目标信息。
3.根据权利要求1或2所述的方法,其中,所述转发信息还包括用于向所述web服务器请求所述目标信息的请求信息。
4.根据权利要求1或2所述的方法,其中,所述方法还包括以下步骤:
当所述web服务器与一终端建立长连接时,所述web服务器向所述订阅中心设备发送长连接添加请求,以将所述终端与所述web服务器的长连接信息添加至所述订阅中心设备所维护的长连接订阅信息中。
5.一种切换长连接的***,所述长连接基于WebSocket建立,所述***包括一web服务器和一订阅中心设备,所述web服务器包括切换装置,所述切换装置包括第一查询装置和第一发送装置,其中:
所述第一查询装置,用于当需要向一终端发送目标信息时,所述web服务器查询本地是否存在与所述终端对应的长连接,其中,所述web服务器基于自身已建立的长连接通道,以及所述终端的终端信息进行判断,以确定是否存在与所述终端对应的长连接,所述目标信息由所述web服务器基于来自所述终端的请求信息所生成;
所述第一发送装置,用于当不存在与所述终端对应的长连接时,将转发信息发送至所述订阅中心设备,其中,所述转发信息包括所述目标信息与所述终端的终端信息,其中,所述订阅中心设备与所述web服务器通过网络通信,用于维护长连接订阅信息,所述长连接订阅信息包括至少一项长连接信息,所述长连接信息至少包括所述长连接对应的终端信息和所述web服务器的标识信息;
其中,所述切换装置还用于:
当所述web服务器与一终端的长连接中断时,向所述订阅中心设备发送长连接删除请求,以将所述终端与所述web服务器的长连接信息从所述订阅中心设备所维护的长连接订阅信息中删除;
其中,所述切换装置还包括第二发送装置,所述订阅中心设备包括辅助装置,所述辅助装置包括第二接收装置,第二查询装置和第三发送装置,其中:
所述第二发送装置用于,当确定本地存在与该终端对应的长连接时,通过该长连接直接向所述终端发送所述目标信息;
所述第二接收装置用于接收来自所述web服务器的转发信息;
所述第二查询装置用于基于所述终端信息,在本地的长连接订阅信息中查询,以确定与该终端信息具有长连接的另一web服务器;
所述第三发送装置用于将所述转发信息发送至所述另一web服务器,以供所述另一web服务器基于自身与所述终端的长连接,发送所述目标信息。
6.根据权利要求5所述的***,其中,所述切换装置还包括:
第一接收装置,用于接收来自订阅中心设备的转发信息,其中,所述转发信息包括终端信息和目标信息。
7.根据权利要求5或6所述的***,其中,所述转发信息还包括用于向所述web服务器请求所述目标信息的请求信息。
8.根据权利要求5或6所述的***,其中,所述切换装置还用于:
当与一终端建立长连接时,向所述订阅中心设备发送长连接添加请求,以将所述终端与所述web服务器的长连接信息添加至所述订阅中心设备所维护的长连接订阅信息中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710505975.3A CN107395686B (zh) | 2017-06-28 | 2017-06-28 | 切换长连接的方法、设备和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710505975.3A CN107395686B (zh) | 2017-06-28 | 2017-06-28 | 切换长连接的方法、设备和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107395686A CN107395686A (zh) | 2017-11-24 |
CN107395686B true CN107395686B (zh) | 2018-06-05 |
Family
ID=60333715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710505975.3A Active CN107395686B (zh) | 2017-06-28 | 2017-06-28 | 切换长连接的方法、设备和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107395686B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234304A (zh) * | 2017-12-29 | 2018-06-29 | 生迪智慧科技有限公司 | 数据传输方法、装置及*** |
CN109743381B (zh) * | 2018-12-27 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 客户端与服务端长连接交互方法及装置 |
CN111083193A (zh) * | 2019-11-11 | 2020-04-28 | 厦门网宿有限公司 | 长连接消息发送方法、服务器及存储介质 |
CN111225242A (zh) * | 2020-01-17 | 2020-06-02 | 广州酷狗计算机科技有限公司 | 视频播放容灾方法、装置及计算机存储介质 |
CN116708533B (zh) * | 2022-10-31 | 2024-06-14 | 荣耀终端有限公司 | 连接切换方法、终端设备、通信***和可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714949A (zh) * | 2009-11-27 | 2010-05-26 | 中国工商银行股份有限公司 | 一种服务器连接切换方法、装置及*** |
CN103457841A (zh) * | 2013-09-17 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 一种基于长连接的消息处理方法和消息处理装置 |
CN103491184A (zh) * | 2013-09-29 | 2014-01-01 | 北京奇虎科技有限公司 | 数据传输方法、设备及*** |
CN103501331A (zh) * | 2013-09-29 | 2014-01-08 | 北京奇虎科技有限公司 | 数据传输方法、设备及*** |
CN104580392A (zh) * | 2014-12-18 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 一种用于维持长连接的方法、装置与设备 |
CN105743958A (zh) * | 2015-04-13 | 2016-07-06 | 乐视网信息技术(北京)股份有限公司 | 一种终端之间的通信方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131083A1 (en) * | 2010-11-24 | 2012-05-24 | Edward Wayne Goddard | Systems and methods for asynchronous notification using http |
CN102185875A (zh) * | 2011-01-30 | 2011-09-14 | 北京开心人信息技术有限公司 | 一种信息同步更新的方法与*** |
CN104735097A (zh) * | 2013-12-18 | 2015-06-24 | 青岛海尔空调器有限总公司 | 信息的收集方法和*** |
CN104378360B (zh) * | 2014-10-23 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 账号安全提示方法、装置和*** |
CN106850502A (zh) * | 2015-12-04 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 基于长连接的业务请求转发方法、存储方法、装置及*** |
-
2017
- 2017-06-28 CN CN201710505975.3A patent/CN107395686B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714949A (zh) * | 2009-11-27 | 2010-05-26 | 中国工商银行股份有限公司 | 一种服务器连接切换方法、装置及*** |
CN103457841A (zh) * | 2013-09-17 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 一种基于长连接的消息处理方法和消息处理装置 |
CN103491184A (zh) * | 2013-09-29 | 2014-01-01 | 北京奇虎科技有限公司 | 数据传输方法、设备及*** |
CN103501331A (zh) * | 2013-09-29 | 2014-01-08 | 北京奇虎科技有限公司 | 数据传输方法、设备及*** |
CN104580392A (zh) * | 2014-12-18 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 一种用于维持长连接的方法、装置与设备 |
CN105743958A (zh) * | 2015-04-13 | 2016-07-06 | 乐视网信息技术(北京)股份有限公司 | 一种终端之间的通信方法和装置 |
Non-Patent Citations (1)
Title |
---|
Android应用长连接之后台服务集群开发;请叫我秀才;《CSDN博客blog.csdn.net/xiucaiyao/article/details/52221957》;20160816;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107395686A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107395686B (zh) | 切换长连接的方法、设备和*** | |
CN100407627C (zh) | 一种实现端到端文件共享的***及方法 | |
EP3481017A1 (en) | Network slice selection method, apparatus and system | |
CN108173976B (zh) | 域名解析方法及装置 | |
EP2862390B1 (en) | Gateway reselection | |
US11129063B2 (en) | Method, terminal and system for updating transmission paths | |
CN107925681A (zh) | 用于分布式软件定义网络分组核心***中的负载平衡的***和方法 | |
CN101072166A (zh) | 一种实现网络预订存储的***和方法 | |
CN103457828B (zh) | 一种跨网的即时通讯方法及*** | |
CN111787079B (zh) | 基于通信群组的通信方法、装置、服务器、***及介质 | |
US11638138B2 (en) | Device-to-device content providing method | |
CN102571862A (zh) | 基于移动终端登录公共聊天组的方法、***及服务器 | |
CN109302437A (zh) | 一种重定向网站的方法和装置 | |
JP2023530608A (ja) | ネットワークスライスの切り替え方法および端末、記憶媒体並びに電子装置 | |
WO2017128713A1 (zh) | 订阅消息的发布方法及装置 | |
US6944664B1 (en) | Method for connecting a first user-terminal to a second using-terminal, related devices and related software modules | |
CN104426816B (zh) | 一种虚拟机通信方法及装置 | |
JP2001051928A (ja) | 情報配信システム及びその配信方法 | |
JP2002064562A (ja) | 通信コネクション確立方法 | |
CN108900441B (zh) | 网络切换方法、第一电子设备及可读存储介质 | |
CN102497402B (zh) | 一种内容注入方法及***、内容分发方法及*** | |
CN111385324A (zh) | 一种数据通信方法、装置、设备和存储介质 | |
JP2007233700A (ja) | キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。 | |
KR102273390B1 (ko) | 네트워크 기능 통합방법 및 장치 | |
CN108933724A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |