首页> 中国专利> 一种在多服务器负载均衡条件下实现SignalR双工通信的方法

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

摘要

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

著录项

  • 公开/公告号CN103873564A

    专利类型发明专利

  • 公开/公告日2014-06-18

    原文格式PDF

  • 申请/专利权人 浪潮集团山东通用软件有限公司;

    申请/专利号CN201410070381.0

  • 发明设计人 董亮;

    申请日2014-02-28

  • 分类号H04L29/08;G06F17/30;

  • 代理机构

  • 代理人

  • 地址 250101 山东省济南市高新区舜雅路1036号

  • 入库时间 2023-12-17 00:25:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-25

    授权

    授权

  • 2018-08-28

    著录事项变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20140228

    著录事项变更

  • 2015-11-04

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20140228

    实质审查的生效

  • 2014-06-18

    公开

    公开

说明书

技术领域

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

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号