WebSocket WCF传输绑定

时间:2010-09-22 17:10:56

标签: c# javascript wcf websocket

我最近在我的项目中发现了WebSockets及其可能的用法。目前,我使用原始网络套接字,但我一直在探索制作自定义传输绑定/通道的可能性,它将处理所有内容并允许我在IIS中托管它。

我已经开始研究这个了,但是我在解决如何让IIS将适当的请求转发给我时遇到了问题。我一直在阅读微软的UDP传输示例,但它没有像我一样托管它,所以在这方面它并不是很有用。该示例在WCF代码本身中创建了一个UDP套接字,这似乎不是正确的方法。我可以手动创建一个端口来监听,但是我必须重新实现IIS / ASP.NET所涵盖的内容。

当一个WebSocket作为普通的HTTP请求启动然后升级到类似于HTTP的协议时,我需要让IIS给我一个我可以读取和写入的流。

我一直在使用.NET Reflector查看webHttpBinding以了解它们是如何做到的。他们似乎使用httpapi.dll到P / Invoke HttpCreateRequestQueue。这是我想要的吗?

这与生成客户端代理JavaScript的方式非常类似于webBindingSocket,但我会自动生成回调方法,以允许服务器轻松调用浏览器上的方法。

例:
http:// localhost / WebSocket.svc - 服务元数据东西
http:// localhost / WebSocket.svc / jsdebug - JavaScript客户端代理

http:// localhost / WebSocket.svc / stream - WebSocket所在的位置

如果我的问题看起来令人困惑,我很抱歉,但我一直在盯着大量的代码试图弄清楚它是如何工作的。基本上我想在我的代码中更容易使用WebSockets,而不必担心将消息序列化到服务器或从服务器序列化并调用正确的方法,我将在WCF中处理所有这些。

由于

2 个答案:

答案 0 :(得分:0)

Microsoft正在开发WebSocket实现,有关更多信息,请参阅:  http://blogs.msdn.com/b/interoperability/archive/2010/12/21/introducing-the-websockets-prototype.aspx

WCF / Web小组在此处将更新发布到其Codeplex网站:http://wcf.codeplex.com/

- larsw

答案 1 :(得分:0)