SignalR 解析:Persistent Connections
今天我们对SingarlR的PersistentConnections的使用进行讨论,包括,客户端和服务器如何连接,如何处理消息等等,主要分为以下几个部分:
• 利用SignalR开始建立一个web应用程序
• 与服务器建立PersistentConnections
• 在.net客户端使用PersistentConnections
• 在浏览器使用PersistentConnections
• 在Windows Server 2012中启用WebSockets
我们需要两种类型的客户端,即.Net 与 浏览器两种客户端,保持与服务器之间的连接。
Demo 说明
我们会交叉提供不同的类型的客户端demo,几种类型的客户端都在一台服务器环境下工作
1、基于web的聊天Demo
2、基于.Net的控制台程序
3、基于Windows 8WinRT 风格的客户端
如果没有Web Server,我们还提供一个宿主程序,使你的应用支持SinglR功能
The persistent connection,即长连接
SignalR使用长连接,在服务器与客户端直接传递数据,接下来看我们的demo,使用Visual Studio 2012开发
1. 开始创建一个新项目
图1
2. 选择Web|Asp.Net Empty web Application,命名为SignalRChat
图2
3. 从NuGet添加引用,在SignalRChat项目中右键单击引用
图3
4. 在NuGet管理窗口中选在“在线”,搜索“Microsoft.AspNet.SignalR”,点击安装
图4
5. 现在我们已经有了一个基本的程序,现在需要注册一个路由,添加一个全局应用程序类:(Global.asax)
图5
6. 去掉其他方法,这里只用到了Application_Start 方法
7. 也不需要多余的命名空间,保留System, System.Web、System.Web.Routing、Microsoft.AspNet.SignalR.
8. 路由方法配置如下:例如http://站点:端口/chat 来配置你的ChatConnection类
图6
9. 添加长连接类:ChatConnection.cs
图7
10. ChatConnection继承了PersistentConnetion类,这里暂时不做处理
图8
11. 服务端代码告一段落,我们来添加客户端代码,添加一个Page页面,名字为index.html,添加Javascript来连接到服务器,并且开始聊天
图9
12. 加入对js的引用,可以把文件直接拖过来
13. 添加Jquery,需要jquery1.6以上的版本
<scriptsrc="Scripts/jquery-1.8.3.js"></script>
14. 添加Jquery.signalR
<scriptsrc="Scripts/jquery.signalR-1.0.1.js"></script>
15. 加入以下代码:
图10
16. 加入用户输入界面
图11