在Windows Phone (WP8) 中使用SignalR
ASP.NET SignalR【幾乎】讓我想丟掉Push Notification,你就知道它把訊息傳遞這件事情弄得有多簡單方便了。在這一篇我說明一下如何在WP8中使用ASP.NET SignalR,同時也稍微解釋一下 這兩天 寫的Code。 請回憶一下我們昨天的情境: 我們在伺服器端透過ASP.NET以SignalR寫了一組服務,主要是用來做聊天室(基本上是範例啦)的功能,包含了接收用戶端傳來的訊息(姓名、聊天文字),以及把訊息主動推送給用戶端(姓名、聊天文字),這樣的功能。 而用戶端就很單純的呼叫或傾聽這個服務。呼叫Send方法可以把用戶端使用者想要說的訊息傳給伺服器端,而伺服器端收到,則執行broadcastMessage這個動態方法,把訊息推送給所有傾聽的用戶端。 透過ASP.NET SignalR要寫這個服務端的機制,很簡單。 首先,建立一個Empty WebForm專案(當然你用MVC也行,之所以用WebForm,原因在 這裡 ),接著透過NuGet引用ASP.NET SignalR: 然後在專案中Add New Item,請找到Hub Class(VS2012 Update 4或VS2013): 建立出來的Class如下: public class MyHub1 : Hub { public void Hello() { Clients.All.hello(); } } 該類別繼承自Hub,這個Hub就是SignalR服務的Bass Class,你可以在其中建立自己的Method,如上圖中的Hello。 我們修改此類別,建立一個聊天室中,接收用戶端傳來訊息的Method,名稱為Send, 其程式碼如下: public class MyHub1 : Hub //SignalR主要部分 { public void Send(string name, string message) //接收傳送來的訊息 { //傳送訊息到用戶端 Clients.All.broadcastMes