CN103873564A - 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 - Google Patents

一种在多服务器负载均衡条件下实现SignalR双工通信的方法 Download PDF

Info

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
Application number
CN201410070381.0A
Other languages
English (en)
Other versions
CN103873564B (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.)
Inspur Group Shandong General Software Co Ltd
Original Assignee
Inspur Group Shandong General Software 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 Inspur Group Shandong General Software Co Ltd filed Critical Inspur Group Shandong General Software Co Ltd
Priority to CN201410070381.0A priority Critical patent/CN103873564B/zh
Publication of CN103873564A publication Critical patent/CN103873564A/zh
Application granted granted Critical
Publication of CN103873564B publication Critical patent/CN103873564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种在多服务器负载均衡条件下实现SignalR双工通信的方法,包括如下步骤:步骤一、定义SignalR通信服务相关数据表;步骤二、定义SignalR通信服务端与SignalR通信客户端;步骤三、定义SignalR通信服务管理器。本发明一种在多服务器负载均衡条件下实现SignalR双工通信的方法基于SignalR技术实现的双工通信能够在多服务器负载均衡环境下正常工作,并且支持多种类型数据库。

Description

一种在多服务器负载均衡条件下实现SignalR双工通信的方法
技术领域
本发明属于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通信通道主动将消息推动到客户端,并更改消息发送状态。
CN201410070381.0A 2014-02-28 2014-02-28 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 Active CN103873564B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 浏览器与浏览器直通的方法、装置和通信系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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