使用SignalR vs WCF将数据推送到客户端?

Upe*_*ari 28 wcf push-notification signalr

我有一个WPF客户端 - 服务器应用程序.现在我有客户端将连接到服务器的场景,服务器将定期将数据推送到客户端.我对应该选择哪种技术和方式来通知客户感到困惑.

SignalR最适合我认为的Web应用程序,我有桌面应用程序.通过WCF服务,我们可以通过双工通道和回调实现推送通知.那么请您指导我使用SignalR或WCF服务的优点和缺点是什么?

谢谢

Has*_*san 20

以下是我对经验的观察:

SignalR专业人士:

  • 易于启动,降低学习曲线.您可以轻松运行从Web找到的示例
  • 异常处理(例如连接丢失,超时)嵌入在API中

SignalR缺点:

  • 仅支持HTTP协议

复式专业人士:

  • 除了HTTP之外还支持TCP.如果您了解客户端类型并且系统在封闭网络中工作,这可能会带来严重的性能提升.此外,通过TCP工作增加了比HTTP更多的连接稳定性

复式缺点:

  • 更高的学习曲线 - 更难启动并拥有稳定的解决方案.想验证一下吗?从网上下载双工和SignalR样本,看看您将花多少时间成功相互运行.
  • 您需要处理所有异常情况(连接丢失,超时等)
  • 我知道当你想长时间使用双工服务时,我不是唯一一个遇到严重超时问题的人.我们需要定期进行服务调用以保持客户端连接的活跃性.

顺便说一下,JavaScript,Desktop和Silverlight项目都存在使用SignalR服务的API.


Mit*_*hir 6

SignalR不只是关于网络.SignalR服务器端代码不关心其客户端的技术,您只需要在客户端拥有实现者.

如果我们将pusing数据隔离到客户端,我强烈建议使用SignalR,因为它在这方面比WCF简单得多,我在WCF中遇到了一些问题,我猜你自己有一些问题.我发现了一个简单的控制台/网络应用程序示例这里.

一般来说,Duplex WCF和像这里一样使用Callback 对我来说似乎很乱,有很多配置服务器端,这就是为什么我认为SignalR更简单.

此外,您不能使用javascript和objective-c双工(AFAIK).