到目前为止,在教程、博客和官方文档中,我已经看到:
- Microsoft.Web.WebSockets
- 从NuGet获取
- 程序集是 Microsoft.WebSockets,但命名空间是 Microsoft.Web.WebSockets
- 最后更新于 2011 年 9 月 14 日
- 包含 WebSocketHandler、WebSocketCollections、WebSocketExtensions
- System.Web.WebSockets
- .NET 4.5 的一部分,可在 Visual Studio 11 开发者预览版中使用
- 包含 AspNetWebSocket、AspNetWebSocketContext、AspNetWebSocketOptions 类
- Documentation on MSDN
- System.Net.WebSockets
- 感谢 Ladislav Mrnka 指出这一点
- .NET 4.5 的一部分,可在 Visual Studio 11 开发者预览版中使用
- 包含 WebSocket、HttpListenerWebSocketContext 等
- Documentation on MSDN
- System.ServiceModel.WebSockets
- 我一定是以为我在某个地方见过这个,现在找不到了
- Microsoft.ServiceModel.WebSockets
- 来自html5labs.interoperabilitybridges.com/... .
- 安装到 [Program Files]\Microsoft SDKs\WCF WebSockets\11.06.22\bin
- 包含 WebSocketHost、WebSocketService、WebSocketsService 类,以及接口(interface)和集合
- 最后更新于 2011 年 6 月 22 日
这些有什么不同吗?有一些旧版本吗?
我一直假设“Microsoft.Web”命名空间用于预发布代码,但即使 Build 大会上的演示也使用这个命名空间,尽管 .NET 4.5 包含 System.Web.WebSockets 命名空间内置。
System.Web.WebSockets 似乎具有与 Microsoft.Web.WebSockets 相同的 API,但具有以 AspNet 为前缀的类和方法。
System.ServiceModel.WebSockets 是 WCF 命名空间的一部分,它似乎也是放置这些东西的明智位置。
帮助 - 我很困惑。我应该使用什么?
最佳答案
我会为您的困惑添加更多内容。 Microsoft.*
前缀程序集/命名空间通常要么非常特定于某种语言,要么不是 .NET 框架的一部分(带外(或原型(prototype)))。
.NET Framework 附带的程序集/命名空间通常以 System.*
开头。 .NET 4.5 中有两个命名空间包含与 WebSockets 相关的功能:
System.Net.WebSockets
- WebSockets 的实现System.Web.WebSockets
- WebSockets 与 ASP.NET 的集成
我没有看到 System.ServiceModel.WebSockets
但我认为有一些名为 Microsoft.ServiceModel.WebSockets
的原型(prototype)
关于.net - 对 Microsoft WebSockets 命名空间感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7875889/