c# - WebSocket WCF 传输绑定(bind)

标签 c# javascript wcf websocket

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

我已经开始着手解决这个问题,但我在弄清楚如何让 IIS 将适当的请求转发给我时遇到了问题。我一直在阅读 Microsoft 的 UDP 传输示例,但它的托管方式与我不同,因此在这方面它不是很有用。该示例在 WCF 代码本身中创建了一个 UDP 套接字,这似乎不是正确的方法。我可以让我的绑定(bind)手动创建一个端口来监听,但是我必须重新实现 IIS/ASP.NET 涵盖的内容。

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

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

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

例子:
http://localhost/WebSocket.svc - 服务元数据资料
http://localhost/WebSocket.svc/jsdebug - JavaScript 客户端代理
http://localhost/WebSocket.svc/stream - WebSocket 所在的位置

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

谢谢

最佳答案

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

WCF/Web 团队在此处发布对其 Codeplex 站点的更新:http://wcf.codeplex.com/

--拉尔夫

关于c# - WebSocket WCF 传输绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3771802/

相关文章:

c# - 在 AutoCAD 中限制另一个形状内的形状移动

javascript - JS - 检查输入字段是否等于解决方案

c# - 根据身份验证状态拦截 WCF 方法调用和 "Re-route"

.net - 避免序列化 REST 服务中的某些属性

c# - 从奇数格式解析日期时间

c# - 如何在 EF 4.1 RC 中的 DbContext 级别关闭更改跟踪?

JavaScript 加载和 DOM

javascript - 箭头函数语法用括号而不是花括号?

wcf - 如何为 WCF 客户端指定备用配置文件?

特定字符的 C# 正则表达式或什么都没有