使用.net 4.5客户端在Windows 7上使用WebSocket的最佳方法

时间:2014-07-08 16:34:46

标签: c# .net wpf wcf websocket

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

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

使用js连接到服务的Web客户端是否更好?根据{{​​3}} chrome和firefox支持它很长一段时间。如果是这样,我可以使用websockets托管wcf服务并从js连接到他吗?我想知道为什么浏览器支持它,同时wpf不支持...

连接的性能也不是最后一件事,它应该快速实现。

2 个答案:

答案 0 :(得分:1)

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

GitHub(也在NuGet上)有一个C#WebSocket客户端可以用来试验。

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

答案 1 :(得分:0)

看看你的问题,我不相信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