CN103873564B - 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 - Google Patents
一种在多服务器负载均衡条件下实现SignalR双工通信的方法 Download PDFInfo
- Publication number
- CN103873564B CN103873564B CN201410070381.0A CN201410070381A CN103873564B CN 103873564 B CN103873564 B CN 103873564B CN 201410070381 A CN201410070381 A CN 201410070381A CN 103873564 B CN103873564 B CN 103873564B
- Authority
- CN
- China
- Prior art keywords
- signalr
- message
- communication
- user
- server
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000686 essence Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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 (1)
1.一种在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,包括如下步骤:
步骤1、定义SignalR通信服务相关数据表;
步骤2、定义SignalR通信服务端与SignalR通信客户端;
步骤3、定义SignalR通信服务管理器;
在步骤1中,所述数据表为SignalR用户连接信息表、SignalR消息信息表以及SignalR消息发送状态表;
步骤1具体包括:
在数据库中创建SignalR用户连接信息表,所述SignalR用户连接信息表用于描述双工通信的连接标识、用户标识和双工通信服务器映射关系,数据列包括有用户ID、用户名、连接ID、服务器ID;
在数据库中创建SignalR消息信息表,所述SignalR消息信息表用于描述通过SignalR双工通信发送的消息基本信息,数据列包括有发送人ID、消息标题、消息内容、优先级、类型、创建时间;
在数据库中创建SignalR消息发送状态表,所述SignalR消息发送状态表用于描述消息的发送状态,数据列包括有发送服务器ID、接收人ID、消息ID、发送状态、发送时间;
步骤2具体包括:
定义Connect方法,在Connect方法中更新SignalR用户连接信息数据表;
定义DisConnect事件,在DisConnect事件中更新SignalR用户连接信息数据表;
SignalR通信服务端实现供业务逻辑调用的通信编程接口,包括向所有在线用户发送消息和向指定接收人发送消息;
在步骤3中,通过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 CN103873564A (zh) | 2014-06-18 |
CN103873564B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410562A (zh) * | 2014-11-19 | 2015-03-11 | 成都实景信息技术有限公司 | 一种能够与业务进行关联的即时信息处理方法 |
CN107087035B (zh) * | 2017-05-25 | 2019-12-03 | 中国民航科学技术研究院 | 一种基于SignalR的民用飞机安全运行实时监测方法及监测*** |
CN110933180B (zh) * | 2019-12-10 | 2023-05-12 | 深信服科技股份有限公司 | 一种通信建立方法、装置、负载设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179532A (zh) * | 2007-12-13 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种邮件服务器***及邮件分发的方法 |
CN101938427A (zh) * | 2010-09-27 | 2011-01-05 | 杭州华三通信技术有限公司 | 一种全局负载均衡中的重定向方法和装置 |
CN102594886A (zh) * | 2012-02-15 | 2012-07-18 | 华为技术有限公司 | 浏览器与浏览器直通的方法、装置和通信*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1324490C (zh) * | 2003-07-01 | 2007-07-04 | 联想(新加坡)私人有限公司 | 面向应用的自动连接***和方法 |
-
2014
- 2014-02-28 CN CN201410070381.0A patent/CN103873564B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179532A (zh) * | 2007-12-13 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种邮件服务器***及邮件分发的方法 |
CN101938427A (zh) * | 2010-09-27 | 2011-01-05 | 杭州华三通信技术有限公司 | 一种全局负载均衡中的重定向方法和装置 |
CN102594886A (zh) * | 2012-02-15 | 2012-07-18 | 华为技术有限公司 | 浏览器与浏览器直通的方法、装置和通信*** |
Also Published As
Publication number | Publication date |
---|---|
CN103873564A (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10762143B2 (en) | Extension of third party application functionality for intent determination | |
CN106464729B (zh) | 用于被代理通信的方法、装置、被代理设备和移动设备 | |
CN102655505B (zh) | 一种开放式通讯平台及其实现方法 | |
CN107431726A (zh) | 消息总线服务目录 | |
JP2019511775A (ja) | メッセージング・ボット・リッチ・コミュニケーションのための技法 | |
WO2009074037A1 (fr) | Procédé, dispositif et système de communication instantanée | |
WO2008147459A1 (en) | Providing profile information to partner content providers | |
WO2013097335A1 (zh) | 社交网络用户信息关联方法及装置 | |
US20130035079A1 (en) | Method and system for establishing data commuication channels | |
WO2017016084A1 (zh) | 告警信息通知方法、装置及告警信息过滤设备 | |
KR20180022867A (ko) | 근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템 | |
CA2880857C (en) | Method, related device, and system for inter-terminal interactions | |
CN103873564B (zh) | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 | |
CN118104218A (zh) | 通信平台上的集成工作空间 | |
WO2012171404A1 (zh) | 一种分享微博消息的方法、装置和*** | |
CN102959905B (zh) | 联系人信息同步的方法、装置及*** | |
AU2013397053A1 (en) | Content sharing method and social synchronization apparatus | |
WO2015017482A1 (en) | Messaging over http protocol for data exchange | |
WO2013029442A1 (zh) | Sns网络中好友动态提示方法、***、客户端及服务器 | |
WO2015041965A1 (en) | Enabling mobile applications to acquire a mac address for obtaining location information | |
CN103414732B (zh) | 应用集成装置和应用集成处理方法 | |
CN105431879A (zh) | 经由通信的模式来推断社交群组 | |
US20150295875A1 (en) | Automatic Group And Hotspot Creation For Websites | |
CN103685485B (zh) | 移动终端VoIP通讯音频管理*** | |
CN105391615B (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 |
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. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |