用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
2015-07-10 14:37
281 查看
前言
交流群:195866844
目录:
我特意下载了SignalR 2.0的源码硬着头皮用我二流子的英语在微软官方的Demo里翻滚..
今天这个负载均衡下使用SignalR..基本完全照搬于微软的Demo,我就当翻译+上自己的理解吧 - -, 原文看这里:
使用SQL server实现持久化
http://www.asp.net/signalr/overview/performance/scaleout-with-sql-server
使用redis实现持久化
http://www.asp.net/signalr/overview/performance/scaleout-with-redis
今天我们主要讲使用SQL server..
开发环境
开发工具:VS2013 旗舰版
数据库:Sql Server2008
操作系统:WIN7旗舰版
正文开始
老规矩,我们先来看看实现后的效果:
做过负载均衡的应该一眼就能看出效果主要做的什么,这里我们就不做过多的解释了..
首先我们来看看微软给出的实现参考图:
创建一个新的空数据库。 集线器Hub将在这个数据库创建必要的表。
将这些NuGet包添加到您的应用程序:
Microsoft.AspNet.SignalR
Microsoft.AspNet.SignalR.SqlServer
创建一个SignalR应用程序。
添加以下代码来启动。 配置启动器(记得我们之前第一篇文章中的Owin么?)
下面就开始第一步
[b]配置数据库:[/b]
首先我们来创建一个库为SignalRTable
如下图:
然后,打开数据库代理(这是微软给的建议,可不开,微软给出的原因是:服务代理提供本机支持SQL Server消息和队列,使其接收更新更有效率。)
可以使用SQL语句查询是否开启了数据库代理(新库默认是关闭的) SQL语句如下:
可以使用如下SQL语句开启你数据库的代理服务:
[b]开始配置项目[/b]
我这里直接拿我的第一个Demo来配置了,首先你要引用
using Microsoft.AspNet.SignalR.SqlServer;
这个类库,..如果没有的话可以通过NuGet去下载.
任何Hub中的代码都不需要修改,上面我提到过,启动器Owin,我们这里直接进入到Owin中,加入如下代码:
这样我们就完成了整个负载均衡情况下的配置.
谢谢大家的支持,我会做的更好..请大家对我二流子的英语多多包含 - -,感谢..希望能有更好的翻译出来.
交流群:195866844
目录:
用SignalR 2.0开发客服系统[系列1:实现群发通讯]
用SignalR 2.0开发客服系统[系列2:实现聊天室]
用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
SignalR 2.0作为一个新的而且强大的通信工具,发布博客之后得到了很多人的支持,谢谢...也有人对性能和架设等问题提出了各种质疑..真的很感谢..我特意下载了SignalR 2.0的源码硬着头皮用我二流子的英语在微软官方的Demo里翻滚..
今天这个负载均衡下使用SignalR..基本完全照搬于微软的Demo,我就当翻译+上自己的理解吧 - -, 原文看这里:
使用SQL server实现持久化
http://www.asp.net/signalr/overview/performance/scaleout-with-sql-server
使用redis实现持久化
http://www.asp.net/signalr/overview/performance/scaleout-with-redis
今天我们主要讲使用SQL server..
开发环境
开发工具:VS2013 旗舰版
数据库:Sql Server2008
操作系统:WIN7旗舰版
正文开始
老规矩,我们先来看看实现后的效果:
做过负载均衡的应该一眼就能看出效果主要做的什么,这里我们就不做过多的解释了..
首先我们来看看微软给出的实现参考图:
使用的先决条件
Microsoft SQL Server 2005或更高版本。 它不支持SQL Server精简版或SQL Azure数据库。 (如果您的应用程序是托管在Azure,你懂的,考虑其他的版本代替吧.)概述
详细的教程之前,这里是一个快速概述你将做什么。创建一个新的空数据库。 集线器Hub将在这个数据库创建必要的表。
将这些NuGet包添加到您的应用程序:
Microsoft.AspNet.SignalR
Microsoft.AspNet.SignalR.SqlServer
创建一个SignalR应用程序。
添加以下代码来启动。 配置启动器(记得我们之前第一篇文章中的Owin么?)
下面就开始第一步
[b]配置数据库:[/b]
首先我们来创建一个库为SignalRTable
如下图:
然后,打开数据库代理(这是微软给的建议,可不开,微软给出的原因是:服务代理提供本机支持SQL Server消息和队列,使其接收更新更有效率。)
可以使用SQL语句查询是否开启了数据库代理(新库默认是关闭的) SQL语句如下:
SELECT [name], [service_broker_guid], [is_broker_enabled] FROM [master].[sys].[databases]
可以使用如下SQL语句开启你数据库的代理服务:
ALTER DATABASE 你的库名 SET ENABLE_BROKER
[b]开始配置项目[/b]
我这里直接拿我的第一个Demo来配置了,首先你要引用
using Microsoft.AspNet.SignalR.SqlServer;
这个类库,..如果没有的话可以通过NuGet去下载.
任何Hub中的代码都不需要修改,上面我提到过,启动器Owin,我们这里直接进入到Owin中,加入如下代码:
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; using Microsoft.AspNet.SignalR; using Microsoft.AspNet.SignalR.SqlServer; [assembly: OwinStartup(typeof(SignalRTest.MyStartup))] namespace SignalRTest { public class MyStartup { public void Configuration(IAppBuilder app) { //加入如下代码,Sqlconn为你的SQL数据库连接字符串. string sqlconn = "您的SQL数据库联接字符串"; GlobalHost.DependencyResolver.UseSqlServer(sqlconn); //第一版Demo中我们一直只有这句代码. app.MapSignalR(); } } }
这样我们就完成了整个负载均衡情况下的配置.
谢谢大家的支持,我会做的更好..请大家对我二流子的英语多多包含 - -,感谢..希望能有更好的翻译出来.
相关文章推荐
- Android开发之在子线程中使用Toast
- MySQL安装文档
- 26 个 jQuery使用技巧
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinal not in range(128)
- iOS:界面适配(一)--Universal通用程序 iPhone、iPad适配(方法)
- HDU2544最短路
- 了解搜索引擎技术
- Nginx报错nginx: [emerg] unknown log format "main"
- Python 中 and 和 or 的有趣现象
- Nine-Patch使用方法
- C++学习笔记之---内存管理
- Java - List遍历、判断、删除元素时的陷阱
- java File类与FilenameFilter类的学习
- 离开熟悉的地方
- 什么是兼容性测试?如何做好兼容性测试?
- 操作系统时间片轮转法进程CPU调度
- sizeof、strlen
- 【程序员联盟】官网上线啦!coderunity.com
- Js 小技巧
- 汇编语言:第六章 编写多个段的程序