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

技术编号:19012046 阅读:125 留言:0更新日期:2018-09-26 16:11
本发明专利技术公开了一种在多服务器负载均衡条件下实现SignalR双工通信的方法,包括如下步骤:步骤一、定义SignalR通信服务相关数据表;步骤二、定义SignalR通信服务端与SignalR通信客户端;步骤三、定义SignalR通信服务管理器。本发明专利技术一种在多服务器负载均衡条件下实现SignalR双工通信的方法基于SignalR技术实现的双工通信能够在多服务器负载均衡环境下正常工作,并且支持多种类型数据库。

【技术实现步骤摘要】
一种在多服务器负载均衡条件下实现SignalR双工通信的方法
本专利技术属于Web应用服务端和客户端双工通信
,涉及一种在多服务器负载均衡条件下实现SignalR双工通信的方法。
技术介绍
常规的客户端浏览器和应用服务器之间的通信采用Request/Response模型,在这种模型中,应用服务器只能够响应客户端请求,而不能主动的向客户端发送数据。微软提供的SignalR通信服务解决了这个问题,它在客户端浏览器和Web服务器之间建立了一条双工通信通道,它的编程接口支持客户端和服务端主动向对方发送数据。理论上,通过Web服务器路由,SignalR通信服务可以实现两个客户端浏览器的实时通信服务。在多服务器负载均衡条件下,两个客户端使用SignalR通信服务进行实时通信,两个客户端可能和两台不同的服务器建立起双工通信通道,此时SignalR通信服务是不能正确进行消息路由的。SignalR通信服务内置了负载均衡时的解决方案,但这个解决方案绑定了SqlServer数据库,如果在生产环境中不采用SqlServer数据库,该方案无法工作。故,针对上述现有技术存在的缺陷,有必要开发研究,以提供一种方案,以实现在多服务器负载均衡条件下,基于多种类型数据库,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通信通道主动将消息推动到客户端,并更改消息发送状态。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
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通信通道主动将消息推动到客户端,并更改消息发送状态。...

【技术特征摘要】
1.一种在多服务器负载均衡条件下实现SignalR双工通信的方法,其特征在于,包括如下步骤:步骤1、定义SignalR通信服务相关数据表;步骤2、定义SignalR通信服务端与SignalR通信客户端;步骤3、定义SignalR通信服务管理器;在步骤1中,所述数据表为SignalR用户连接信息表、SignalR消息信息表以及SignalR消息发送状态表;步骤1具体包括:在数据库中创建SignalR用户连接信息表,所述SignalR用户连接信息表用于描述双工通信的连接标识、用户标识和双工通信服务器映射关系,数据列包括有用户ID、用户名、连接ID、服务器ID;在数据库中创建SignalR消息信息表,所述SignalR消息信息表用于描述通过SignalR双工通信发送的消息基本信息,数据列包括有发送人ID、消息标题、消息...

【专利技术属性】
技术研发人员:董亮
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1