我正在研究SignalR,但我不想编写聊天客户端。相反,我想创建一个具有持久连接的主机,并让C#.NET客户端(而不是网页)与之通信。有没有编写持久连接客户端的好例子?
或者-Hub真的是唯一的选择吗?
最佳答案
不,Hub API不是唯一的方法。网络上有很多示例显示了如何使用PersistentConnections(例如,SignalR存储库中的this one-客户端是JavaScript,但是使用C#时,您仅需订阅Received事件)-每当SignalR客户端使用时收到一条消息,它将调用Received事件处理程序。
集线器基本上是一个更高级别的API,它使SignalR的使用更加容易。持久连接是关于发送/接收原始字符串,而集线器是关于从服务器或相反的方式调用客户端上的功能。但是,集线器被实现为持久连接之上的一层,在持久连接中,消息采用JSon格式而不是原始字符串,并且客户端和服务器都相应地解释它们。
我在SignalR协议的my post中描述了持久连接和集线器(有关持久连接,请参阅持久连接消息部分)。