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键,两边同时更新点赞数。
本文如有不妥之处,请见谅!