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