被微软WebSockets命名空间搞糊涂了



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

  • Microsoft.Web.WebSockets
    • 从NuGet获取
    • 组装是Microsoft。WebSockets,但是命名空间是Microsoft.Web.WebSockets
    • 最后更新2011年9月14日
    • 包含WebSocketHandler, WebSocketCollections, WebSocketExtensions
  • System.Web.WebSockets
    • .NET 4.5的一部分,可在Visual Studio 11 Developer Preview中使用
    • 包含AspNetWebSocket, AspNetWebSocketContext, aspnetwebsocketopoptions类
    • 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 sdk WCF WebSockets11.06.22bin
    • 包含websocketthost, WebSocketService, WebSocketsService类,以及接口和集合
    • 最后更新2011年6月22日

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

我一直认为微软。Web命名空间用于预发布代码,但即使是Build会议上的演示也使用这个命名空间,尽管事实上。net 4.5包含了内置的System.Web.WebSockets命名空间。

包含。WebSockets似乎有与Microsoft.Web相同的API。WebSockets,但类和方法前缀为AspNet。

System.ServiceModel。WebSockets是WCF命名空间的一部分,它似乎也是放置这些东西的一个明智的地方。

救命-我糊涂了。我应该用什么?

我再给你解释一下。Microsoft.*前缀程序集/命名空间通常要么非常特定于某些语言,要么不是. net框架的一部分(已发布(或原型))。

. net框架附带的程序集/命名空间通常从System.*开始。有两个命名空间包含了。net 4.5中与WebSockets相关的特性:
  • System.Net.WebSockets - WebSockets的实现
  • System.Web.WebSockets - WebSockets与ASP的集成。净

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

html5labs.interoperabilitybridges.com:

…我们不打算将来对这个原型进行任何更新。

System.Web.WebSockets:

…命名空间包含支持将WebSocket功能添加到ASP的类。. NET Web Forms applications.

Microsoft.Web.WebSockets:

…提供了在Windows 8上使用ASP编写支持websocket的服务器应用程序的功能。. NET和WCF


我的结论:

  • System.Net。WebSockets看起来像是低级别的东西。
  • 包含。WebSockets需要当你使用ASP。. NET Web Forms
  • Microsoft.Web。当你使用ASP时,NuGet的WebSockets看起来是最好的选择。净 MVC

@Greg Woods re System.ServiceModel.WebSockets:你不是在想象它。

http://html5labs.interoperabilitybridges.com/media/1165/readme.htm

对于Microsoft.Web。websocket System.Web.WebSockets

我认为:

包含。WebSockets-给你一个lower api来处理WebSockets

而…

Microsoft.Web。WebSockets-是一种更高的 api,这使得它更容易处理,并且还试图镜像html5/javascript规范中的事件/函数(例如- onerror,onopen, onmessage,onclose, send等)

这是我对为什么命名Microsoft.Web.WebSockets:

的看法

"这个预览包提供了在Windows 8上使用ASP编写支持websocket的服务器应用程序的功能。NET和WCF。需要。net 4.5 RC和Windows 8 RC。"

可能是微软。*命名库,因为它是针对Windows 8 RC开发的。这不是一个可靠的依赖,所以它不能成为官方。net框架的一部分。

当然,一旦Windows 8出来,他们就可以依赖它,并开始发布websockets库作为官方框架的一部分。因此,Microsoft.Web.WebSockets可能会在没有离开预发布状态的情况下被有效地淘汰。

System.Web呢?WebSockets vs System.Net.WebSockets?

包含。WebSockets:支持在ASP中添加WebSocket功能的类。NET Web Forms应用程序。"

嗯……似乎很简单。这些类是为在ASP中使用而设计的。NET Web窗体。它们需要Windows 8吗?不确定。

System.Net。WebSockets:是另一个与Web表单无关的东西。但只有在Windows 8系统下才能使用。

Microsoft.ServiceModel.WebSockets

另一个旧的预发布包。这款适用于Windows 7!

注意:而不是担心什么工作在什么平台+框架使用WebSockets有点消失,你可以使用SignalR代替,它会选择一个传输,并尝试为你做一些像WebSockets。

相关内容

  • 没有找到相关文章

最新更新