由Microsoft WebSockets命名空间混淆

Gre*_*ods 47 .net wcf html5 websocket

到目前为止,在教程,博客和官方文档中,我看到:

  • Microsoft.Web.WebSockets
    • 从NuGet获得
    • 程序集是Microsoft.WebSockets,但Namespace是Microsoft.Web.WebSockets
    • 最后更新于2011年9月14日
    • 包含WebSocketHandler,WebSocketCollections,WebSocketExtensions
  • System.Web.WebSockets
    • .NET 4.5的一部分,可在Visual Studio 11 Developer Preview中使用
    • 包含AspNetWebSocket,AspNetWebSocketContext,AspNetWebSocketOptions类
    • MSDN上的文档
  • System.Net.WebSockets
    • 感谢Ladislav Mrnka指出这一点
    • .NET 4.5的一部分,可在Visual Studio 11 Developer Preview中使用
    • 包含WebSocket,HttpListenerWebSocketContext等
    • MSDN上的文档
  • System.ServiceModel.WebSockets
    • 我一定想到我在某个地方见过这个,现在找不到它
  • Microsoft.ServiceModel.WebSockets
    • html5labs.interoperabilitybridges.com/...获得.
    • 安装在[Program Files]\Microsoft SDKs\WCF WebSockets\11.06.22\bin中
    • 包含WebSocketHost,WebSocketService,WebSocketsService类,以及接口和集合
    • 最后更新于2011年6月22日

这些有些不同吗?有些旧版本吗?

我一直认为'Microsoft.Web'命名空间用于预发布代码,但即使.NET会议中包含内置的System.Web.WebSockets命名空间,Build会议中的演示也使用此命名空间.

System.Web.WebSockets似乎与Microsoft.Web.WebSockets具有相同的API,但是具有以AspNet为前缀的类和方法.

System.ServiceModel.WebSockets是WCF命名空间的一部分,这也是放置这些东西的合理位置.

帮助 - 我很困惑.我该怎么用?

Lad*_*nka 25

我会为你的困惑多加一点.Microsoft.*前缀程序集/命名空间通常非常特定于某种语言或不是.NET框架的一部分(带外(或原型)).

.NET框架附带的程序集/命名空间通常以System.*.有两个名称空间包含与.NET 4.5中的WebSockets相关的功能:

  • System.Net.WebSockets - WebSockets的实现
  • System.Web.WebSockets - WebSockets与ASP.NET的集成

我没有看到,System.ServiceModel.WebSockets但我认为有一些原型命名Microsoft.ServiceModel.WebSockets