CN103873564A - 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 - Google Patents
一种在多服务器负载均衡条件下实现SignalR双工通信的方法 Download PDFInfo
- Publication number
- CN103873564A CN103873564A CN201410070381.0A CN201410070381A CN103873564A CN 103873564 A CN103873564 A CN 103873564A CN 201410070381 A CN201410070381 A CN 201410070381A CN 103873564 A CN103873564 A CN 103873564A
- Authority
- CN
- China
- Prior art keywords
- signalr
- message
- communication
- duplex communication
- load condition
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在多服务器负载均衡条件下实现SignalR双工通信的方法,包括如下步骤:步骤一、定义SignalR通信服务相关数据表;步骤二、定义SignalR通信服务端与SignalR通信客户端;步骤三、定义SignalR通信服务管理器。本发明一种在多服务器负载均衡条件下实现SignalR双工通信的方法基于SignalR技术实现的双工通信能够在多服务器负载均衡环境下正常工作,并且支持多种类型数据库。
Description
技术领域
本发明属于Web应用服务端和客户端双工通信技术领域,涉及一种在多服务器负载均衡条件下实现SignalR双工通信的方法。
背景技术
常规的客户端浏览器和应用服务器之间的通信采用Request/Response模型,在这种模型中,应用服务器只能够响应客户端请求,而不能主动的向客户端发送数据。
微软提供的SignalR通信服务解决了这个问题,它在客户端浏览器和Web服务器之间建立了一条双工通信通道,它的编程接口支持客户端和服务端主动向对方发送数据。理论上,通过Web服务器路由,SignalR通信服务可以实现两个客户端浏览器的实时通信服务。
在多服务器负载均衡条件下,两个客户端使用SignalR通信服务进行实时通信,两个客户端可能和两台不同的服务器建立起双工通信通道,此时SignalR通信服务是不能正确进行消息路由的。SignalR通信服务内置了负载均衡时的解决方案,但这个解决方案绑定了Sql Server数据库,如果在生产环境中不采用Sql Server数据库,该方案无法工作。
故,针对上述现有技术存在的缺陷,有必要开发研究,以提供一种方案,以实现在多服务器负载均衡条件下,基于多种类型数据库,SignalR通信服务能够正常工作。
发明内容
为解决上述问题,本发明的目的在于提供一种在多服务器负载均衡条件下实现SignalR双工通信的方法。
为实现上述目的,本发明的技术方案为:
一种在多服务器负载均衡条件下实现SignalR双工通信的方法,包括如下步骤:
步骤一、定义SignalR通信服务相关数据表;
步骤二、定义SignalR通信服务端与SignalR通信客户端;
步骤三、定义SignalR通信服务管理器。
进一步地,在步骤一中,所述数据表为SignalR用户连接信息表、SignalR消息信息表以及SignalR消息发送状态表。
进一步地,步骤一具体包括:
在数据库中创建SignalR用户连接信息表,所述SignalR用户连接信息表用于描述双工通信的连接标识、用户标识和双工通信服务器映射关系,数据列包括有用户ID、用户名、连接ID、服务器ID;
在数据库中创建SignalR消息信息表,所述SignalR消息信息表用于描述通过SignalR双工通信发送的消息基本信息,数据列包括有发送人ID、消息标题、消息内容、优先级、类型、创建时间;
在数据库中创建SignalR消息发送状态表,所述SignalR消息发送状态表用于描述消息的发送状态,数据列包括有发送服务器ID、接收人ID、消息ID、发送状态、发送时间。
进一步地,步骤二具体包括:
定义Connect方法,在Connect方法中更新SignalR用户连接信息数据表;
定义DisConnect事件,在DisConnect事件中更新SignalR用户连接信息数据表;
SignalR通信服务端实现供业务逻辑调用的通信编程接口,包括向所有在线用户发送消息和向指定接收人发送消息。
进一步地,在步骤三中,通过Web应用程序定义定时器对象,定时在数据库中搜索未发消息,消息接收者包含在已连接在本服务器上的用户列表中;应用程序搜索到可发消息时,使用SignalR通信通道主动将消息推动到客户端,并更改消息发送状态。
相较于现有技术,本发明一种在多服务器负载均衡条件下实现SignalR双工通信的方法基于SignalR技术实现的双工通信能够在多服务器负载均衡环境下正常工作,并且支持多种类型数据库。
附图说明
图1是本发明的流程图示。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明一种在多服务器负载均衡条件下实现SignalR双工通信的方法,包括如下步骤:
步骤一、定义SignalR通信服务相关数据表
所述数据表为SignalR用户连接信息表、SignalR消息信息表以及SignalR消息发送状态表;具体地,步骤一中包括有:
在数据库中创建SignalR用户连接信息表,所述SignalR用户连接信息表用于描述双工通信的连接标识、用户标识和双工通信服务器映射关系,数据列包括有用户ID、用户名、连接ID、服务器ID。
在数据库中创建SignalR消息信息表,所述SignalR消息信息表用于描述通过SignalR双工通信发送的消息基本信息,数据列包括有发送人ID、消息标题、消息内容、优先级、类型、创建时间。
在数据库中创建SignalR消息发送状态表,所述SignalR消息发送状态表用于描述消息的发送状态,数据列包括有发送服务器ID、接收人ID、消息ID、发送状态、发送时间。
步骤二、定义SignalR通信服务端与SignalR通信客户端
定义Connect方法,在Connect方法中更新SignalR用户连接信息数据表。
定义DisConnect事件,在DisConnect事件中更新SignalR用户连接信息数据表。
SignalR通信服务端实现供业务逻辑调用的通信编程接口,包括向所有在线用户发送消息和向指定接收人发送消息;而客户端使用javascript函数监听浏览器Dom对象加载、刷新、关闭事件,在事件发生时相应调用服务端的Connect和DisConnect事件维护SignalR用户连接信息数据表。同时,客户端使用javascript函数定义通信编程接口,包括客户端发送消息和客户端接收到消息后的处理函数。
步骤三、定义SignalR通信服务管理器
其中,Web应用程序定义定时器对象,定时在数据库中搜索未发消息,消息接收者包含在已连接在本服务器上的用户列表中。应用程序搜索到可发消息时,使用SignalR通信通道主动将消息推动到客户端,并更改消息发送状态。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,包括如下步骤:
步骤一、定义SignalR通信服务相关数据表;
步骤二、定义SignalR通信服务端与SignalR通信客户端;
步骤三、定义SignalR通信服务管理器。
2.根据权利要求1所述在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,在步骤一中,所述数据表为SignalR用户连接信息表、SignalR消息信息表以及SignalR消息发送状态表。
3.根据权利要求2所述在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,步骤一具体包括:
在数据库中创建SignalR用户连接信息表,所述SignalR用户连接信息表用于描述双工通信的连接标识、用户标识和双工通信服务器映射关系,数据列包括有用户ID、用户名、连接ID、服务器ID;
在数据库中创建SignalR消息信息表,所述SignalR消息信息表用于描述通过SignalR双工通信发送的消息基本信息,数据列包括有发送人ID、消息标题、消息内容、优先级、类型、创建时间;
在数据库中创建SignalR消息发送状态表,所述SignalR消息发送状态表用于描述消息的发送状态,数据列包括有发送服务器ID、接收人ID、消息ID、发送状态、发送时间。
4.根据权利要求3所述在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,步骤二具体包括:
定义Connect方法,在Connect方法中更新SignalR用户连接信息数据表;
定义DisConnect事件,在DisConnect事件中更新SignalR用户连接信息数据表;
SignalR通信服务端实现供业务逻辑调用的通信编程接口,包括向所有在线用户发送消息和向指定接收人发送消息。
5.根据权利要求4所述在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,在步骤三中,通过Web应用程序定义定时器对象,定时在数据库中搜索未发消息,消息接收者包含在已连接在本服务器上的用户列表中;应用程序搜索到可发消息时,使用SignalR通信通道主动将消息推动到客户端,并更改消息发送状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410070381.0A CN103873564B (zh) | 2014-02-28 | 2014-02-28 | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410070381.0A CN103873564B (zh) | 2014-02-28 | 2014-02-28 | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873564A true CN103873564A (zh) | 2014-06-18 |
CN103873564B CN103873564B (zh) | 2018-09-25 |
Family
ID=50911679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410070381.0A Active CN103873564B (zh) | 2014-02-28 | 2014-02-28 | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103873564B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410562A (zh) * | 2014-11-19 | 2015-03-11 | 成都实景信息技术有限公司 | 一种能够与业务进行关联的即时信息处理方法 |
CN107087035A (zh) * | 2017-05-25 | 2017-08-22 | 中国民航科学技术研究院 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 |
CN110933180A (zh) * | 2019-12-10 | 2020-03-27 | 深信服科技股份有限公司 | 一种通信建立方法、装置、负载设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060425A1 (en) * | 2003-07-01 | 2005-03-17 | International Business Machines Corporation | Application-based autonomic connectivity |
CN101179532A (zh) * | 2007-12-13 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种邮件服务器系统及邮件分发的方法 |
CN101938427A (zh) * | 2010-09-27 | 2011-01-05 | 杭州华三通信技术有限公司 | 一种全局负载均衡中的重定向方法和装置 |
CN102594886A (zh) * | 2012-02-15 | 2012-07-18 | 华为技术有限公司 | 浏览器与浏览器直通的方法、装置和通信系统 |
-
2014
- 2014-02-28 CN CN201410070381.0A patent/CN103873564B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060425A1 (en) * | 2003-07-01 | 2005-03-17 | International Business Machines Corporation | Application-based autonomic connectivity |
CN101179532A (zh) * | 2007-12-13 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种邮件服务器系统及邮件分发的方法 |
CN101938427A (zh) * | 2010-09-27 | 2011-01-05 | 杭州华三通信技术有限公司 | 一种全局负载均衡中的重定向方法和装置 |
CN102594886A (zh) * | 2012-02-15 | 2012-07-18 | 华为技术有限公司 | 浏览器与浏览器直通的方法、装置和通信系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410562A (zh) * | 2014-11-19 | 2015-03-11 | 成都实景信息技术有限公司 | 一种能够与业务进行关联的即时信息处理方法 |
CN107087035A (zh) * | 2017-05-25 | 2017-08-22 | 中国民航科学技术研究院 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 |
CN107087035B (zh) * | 2017-05-25 | 2019-12-03 | 中国民航科学技术研究院 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测系统 |
CN110933180A (zh) * | 2019-12-10 | 2020-03-27 | 深信服科技股份有限公司 | 一种通信建立方法、装置、负载设备及存储介质 |
CN110933180B (zh) * | 2019-12-10 | 2023-05-12 | 深信服科技股份有限公司 | 一种通信建立方法、装置、负载设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103873564B (zh) | 2018-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160012150A1 (en) | System and method for main distribution network graph/model/data integration based on remote access and information interaction | |
JP2011222049A5 (zh) | ||
KR102208935B1 (ko) | 데이터 교환을 위한 컨텍스트를 설정하는 http 프로토콜을 통한 메시징 api | |
CN109639750B (zh) | 业务数据处理方法及设备 | |
CN103916482A (zh) | 一种基于sqlite的数据同步传输方法 | |
CN105528728A (zh) | 一种基于云计算的商城电商服务平台及其方法 | |
CN103347065B (zh) | 一种服务信息处理系统及方法 | |
CN103312751A (zh) | 一种基于浏览器的即时通信方法 | |
WO2009051233A1 (ja) | ネットワークシステム、ネットワーク家電機器、コンテンツ/メタデータの同期処理方法、及びコンピュータ・プログラム | |
US20150039675A1 (en) | Messaging over http protocol for data exchange | |
US10873640B2 (en) | Information exchange method and server | |
CA2880857C (en) | Method, related device, and system for inter-terminal interactions | |
WO2015021873A1 (en) | Method, platform server, and system of data pushing | |
CN100555285C (zh) | 网页信息协同浏览系统及方法 | |
CN104361049A (zh) | 一种快速展现数据库数据的方法和系统 | |
CN104239543A (zh) | 一种基于移动互联网技术的生活服务搜索平台 | |
CN105701094A (zh) | 一种etl数据采集方法和装置 | |
CN103457802A (zh) | 一种信息传输系统及方法 | |
CN103873564A (zh) | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 | |
CN103685485B (zh) | 移动终端VoIP通讯音频管理系统 | |
CN111427703A (zh) | 工业数据实时展示方法及系统 | |
US9942177B1 (en) | Method and system for real-time data updates | |
CN102103606A (zh) | 一种在手机客户端上实现高级检索商品的技术 | |
CN103092951A (zh) | 一种基于信息展现层的通用数据交换方法及系统 | |
CN104270432A (zh) | 基于钻井行业实时数据服务系统及数据交互方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant after: Langchao General Software Co., Ltd Address before: No. 1036, Shun Ya Road, Ji'nan high tech Zone, Shandong Province Applicant before: Shandong Universal Software Co., Ltd., Langchao Group Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |