SignalR支持两种客户端:JavaScript Client和.NET Client。一个简单的SignalR例子中的SignalRDemo(点赞页面)就是JavaScript Client(HTML中的JavaScript脚本)。而.NET Client包括但不限于Windows Console,Windows Form,WPF,Windows Phone等。
这里介绍Windows Console客户端。
在一个简单的SignalR例子的代码基础上,添加一个Windows Console。通过NuGet安装Microsoft.AspNet.SignalR.Client。接下来添加代码。
首先创建HubConnection, 参数是点赞页面运行的地址(因为SignalR服务端RateHub由IIS或者IIS Express托管)。接下来创建Hub代理,确保名字和RateHub类的HubName属性值一致。然后添加rateUpdate的相应处理(输出点赞数),rateUpdate事件由服务器端触发。然后启动Hub连接。
接下来的代码:只要按Y键,就触发服务端RateHub的Rate方法(增加点赞数)。
class Program { static void Main(string[] args) { var hubConnection = new HubConnection("http://localhost:58480/"); IHubProxy stockTickerHubProxy = hubConnection.CreateHubProxy("rateHub"); stockTickerHubProxy.On<int>("rateUpdate", Update); hubConnection.Start(); Console.WriteLine("Please type 'Y' key to rate"); var input = Console.ReadKey().Key; while (input == ConsoleKey.Y) { stockTickerHubProxy.Invoke("Rate"); input = Console.ReadKey().Key; } } static void Update(int rating) { Console.WriteLine(); Console.WriteLine("Good({0})", rating); } }
程序添加完毕,打开网页http://localhost:58480/rate.html,然后运行Console,在网页上点击按钮或者Console中按下Y键,两边同时更新点赞数。
本文如有不妥之处,请见谅!