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

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

Info

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
Application number
CN201410070381.0A
Other languages
English (en)
Other versions
CN103873564A (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 General Software Co Ltd
Original Assignee
Inspur 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 General Software Co Ltd filed Critical Inspur 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

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 (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通信通道主动将消息推动到客户端,并更改消息发送状态。
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 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)

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

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1324490C (zh) * 2003-07-01 2007-07-04 联想(新加坡)私人有限公司 面向应用的自动连接***和方法

Patent Citations (3)

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