【问题标题】:The best way to use WebSocket on windows 7 with .net 4.5 client在带有 .net 4.5 客户端的 Windows 7 上使用 WebSocket 的最佳方式
【发布时间】:2014-07-08 16:34:45
【问题描述】:

我需要在服务器和客户端之间建立全双工连接。目前我有.net 4.5 wpf 客户端。我最初的想法是关于 netTcpBinding 的 wcf 服务。但它似乎只能在 Windows 8 上运行。客户端应用程序必须在 Windows 8 上启动。

但我想至少支持 Windows 7。我在 SignalR 中看到了替代方案,但它会使用服务器发送的事件,我不确定。

用js连接到服务的web客户端更好吗?根据http://caniuse.com/websockets chrome 和firefox 支持了很长时间。如果是这样,我可以使用 websockets 托管 wcf 服务并从 js 连接到他吗?我想知道为什么浏览器支持它而同时 wpf 不支持...

连接性能也不是最后一件事,它应该非常快。

【问题讨论】:

  • it seems to be working only on windows 8 你从一个错误的假设开始
  • @EZI 我会说这是一种观察,而不是假设和完全有效的断言。
  • @EZI 太酷了!我阅读了很多类似的主题并做出了这样的假设。为什么会出错?

标签: c# .net wpf wcf websocket


【解决方案1】:

WebSockets 是一种允许通过单个 TCP 连接进行双向通信的技术。它旨在用于浏览器和网络服务器之间,但这并不意味着您不能在其他平台上使用它。

GitHub 上有一个 C# WebSocket 客户端(也在 NuGet 上),您可以使用它进行试验。

https://github.com/sta/websocket-sharp

【讨论】:

  • 不管这篇文章如何,我都得出了这样的结论-stackoverflow.com/questions/17039071/… 伙计们说客户端和服务器必须在 Windows 8 或 Windows Server 2012 上运行。如果与第三方合作,他们只是模拟 websockets 的工作。
  • Windows 以外的其他操作系统对我来说不感兴趣。
  • 第三方不模拟该功能,从头开始提供。
【解决方案2】:

看你的问题,我不认为 netTcpBinding 是最好的选择。如果我在你哪里我会使用这个绑定:绑定http://msdn.microsoft.com/en-us/library/system.servicemodel.wsdualhttpbinding(v=vs.110).aspx

该绑定是 SOAP,因此您可能会获得更好的兼容性,并且它专为双工连接而设计。

至于 SignalR 和 js 与服务的连接,我想说此时您似乎有一个可行的解决方案,而更改绑定可能是一个简短的解决方案;但是,只有你自己才能真正确定。

我认为你不需要这个;但是,以防万一,这里有一个在 wcf 上使用双工的示例。 (我在这个例子中使用了 TcpNamedPipe 而不是 WSDualHttpBinding;但是,你只需要做一些小的改动就可以得到想要的结果)

https://github.com/Aelphaeis/MyWcfDuplexPipeExample

【讨论】:

  • 是的,你可能是对的。我需要做一些拍卖之类的东西。客户可以发送他们的出价和询价,一旦某个出价和询价匹配的服务必须向他们双方发送通知。连接也应该是安全的。
猜你喜欢
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多