我有一个WPF客户端 - 服务器应用程序。现在我有客户端将连接到服务器的场景,服务器将定期将数据推送到客户端。我对应该选择哪种技术和方式来通知客户感到困惑。
SignalR最适合我认为的Web应用程序,我有桌面应用程序。通过WCF服务,我们可以通过双工通道和回调实现推送通知。那么请您指导我使用SignalR或WCF服务的优点和缺点是什么?
由于
答案 0 :(得分:20)
以下是我对经验的观察:
SignalR专业人士:
SignalR缺点:
Duplex pros:
Duplex cons:
顺便说一句,JavaScript,桌面和Silverlight项目都存在使用SignalR服务的API。
答案 1 :(得分:6)
SignalR不只是关于网络。 SignalR服务器端代码不关心其客户端的技术,您只需要在客户端拥有实现者。
如果我们将pusing数据隔离到客户端,我强烈推荐SignalR,因为它在这方面比WCF简单得多,我在WCF中遇到了一些问题,我猜你自己也有一些问题。 我找到了一个简单的控制台/ Web应用程序示例here。
一般来说,Duplex WCF和像here一样使用Callback对我来说似乎非常混乱,配置服务器端很多,这就是为什么我认为SignalR更简单。
此外,您不能使用带有javascript和objective-c的双面打印(AFAIK)。
答案 2 :(得分:3)
我认为你已经掌握了很多关于它们的数据。但选择SignalR将为您提供额外的优势,而不是开发工作,在大多数情况下,在选择技术时会出现重大决策障碍。
您无需担心API开发/测试等问题,并且可以专注于您自己的项目实施。
希望它有所帮助!
答案 3 :(得分:2)
SignalR现在可以轻松地用于来自javascript,.NET WinForms和WPF的多个客户端,甚至可以与C ++客户端一起使用;使用自托管的.NET信号服务器(OWIN)是一种非常好的方法,可以将一个独立的服务器推送/接收/广播到多个客户端。唯一可能更容易的是ZeroMQ使用其发布订阅方法。
答案 4 :(得分:1)
到目前为止没有人提出过一点:
如果您只是想定期更新新数据,最好从客户端使用WCF和轮询机制,而不是使用双工WCF或信号器。