2010-09-22 24 views
4

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

我已经开始着手这方面的工作,但我遇到了一些问题,如何让IIS将适当的请求转发给我。我一直在阅读来自Microsoft的UDP传输示例,但它没有像我一样托管它,所以在这方面它并不是非常有用。该示例在WCF代码本身中创建了一个UDP套接字,这似乎不是正确的方式。我可以让我的绑定手动创建一个端口来侦听,但是我不得不重新实现IIS/ASP.NET覆盖的东西。

由于WebSocket作为一个普通的HTTP请求而开始,然后升级为类似于HTTP的协议,我需要让IIS为我提供一个可以读取和写入的流。

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

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

实施例:
HTTP://本地主机/ WebSocket.svc - 服务元数据的东西
HTTP://本地主机/ WebSocket.svc/jsdebug - JavaScript客户端代理
HTTP://本地主机/ WebSocket.svc /流 - WebSocket所在的位置

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

感谢

回答