我在winform c#app中每隔几秒就会对一个Web服务进行轮询。它检查消息并从我的服务器获取消息和/或它将消息从我的桌面应用程序中继到我的服务器。
Web服务正在无限循环中调用,用户可以通过单击按钮来停止和启动。当轮询开启时,内存会上升并保持上升(我猜我使用无限循环)。如果我的服务器有办法通知我的客户端有消息可用,那么我认为我可以摆脱我的无限循环。我正在寻找不同的架构,我遇到了SignalR,但它似乎更适合asp.net。是这样的吗?或者它可以修改为在我的场景中工作吗?
感谢
答案 0 :(得分:8)
使用SignalR作为客户端(或服务器)需要win8 +来获取websockets。在使用它之前,这应该是你非常清楚的。我学到了很难的方法;)请参阅此处的支持http://www.asp.net/signalr/overview/signalr-1x/getting-started/supported-platforms
答案 1 :(得分:4)
请参阅此答案,了解如何将asmx / WCF提升为2行代码中的推送服务。 Push Data from a WCF Service to Website
答案 2 :(得分:1)
SignalR有一个.NET客户端,你也可以使用Owin自己托管SignalR
安装包
Microsoft.AspNet.SignalR.Client