8

我正在比较 WebSocket 服务器

  1. xsockets.net
  2. 超级WebSocket
  3. 斑点
  4. 信号R

SignalR仅在 Server 2012 上可用,但我的服务器运行的是 Windows 2008。

SuperWebSocket & Fleck,它们只支持 flash-proxy 回退。

xsockets.net,这个在旧版 Web 浏览器中具有长池后备支持。但它说后备只适用于 MVC3/4 项目。它可以在 MVC3/4 应用程序中打开一个端口来接受支持 websocket 的客户端的连接吗?在 Windows 2008 上对我来说似乎是不可能的。

我有一个问题,那就是:XSockets.NET 如何在 Windows 2008 中运行?

如您所知,直到 IIS8.0 才在 http.sys 中添加 WebSocket 功能。在 IIS7.5 中,SignalR 始终为所有客户端以长池模式运行。

XSockets.NET 也一样吗?因为据说只有 MVC3/4 项目才支持长池回退。如果我想利用回退支持,我必须在最终由 IIS 托管的 MVC3/4 中使用 XSockets.NET。而且IIS7.5没有websocket的特性,这就是我怕的

有谁知道它在托管 MVC 应用程序的 IIS7.5 中是如何工作的?通过长池处理所有客户端?

4

1 回答 1

10

编辑:

兼容性

XSockets 将在任何运行 .NET 4,0(或更高版本)或 Mono 的机器上与 websocket 兼容。这与操作系统无关……如果您愿意,您甚至可以在 Raspberry PI 上运行完整的 XSocket。XSockets 使用回退的唯一时间是客户端连接不支持 websockets(IE9、IE8 等)。

SignalR 在 .NET 4.5 和内置的 WebSocket 命名空间(4.5 中)上构建了 WebSocket 支持,而 XSockets 在 .NET 4.0 中实现了 WebSocket 协议(除其他外)。SignalR 和 XSockets 除了它们都建立在 .NET 框架上之外,真的没有什么可评论的,在那之后看起来非常不同......但这超出了范围。

环境

由于 XSockets 自己实现了 WebSocket 协议,这意味着 XSockets 不依赖于任何网络服务器、IIS、Apache 等……它可以作为独立的 Windows 服务运行,如果你愿意,它可以在 Azure 上运行。但是,您也可以在您的 Web 中启动 XSockets,这实际上是安装我们的 nuget 包时的设置方式。

倒退

当您将 XSockets 安装到 MVC3/MVC4 解决方案中时,安装将自动注册一个附加控制器。该控制器将使用我们的外部 API(套接字)与 XSocket 通信,如果客户端不支持 websocket,JavaScript API 将针对该控制器执行 AJAX(长轮询)。作为开发人员,如果您想使用回退,除了添加额外的 JavaScript 文件外,您不需要做任何不同的事情。

现在,您也可以让 WebForms(和 Azure)的后备工作,但由于这超出了范围,如果您对此有疑问,我们将其留到以后。

总结...

  • 不用担心 XSockets 需要特殊的操作系统才能运行,只要安装了 .NET 4.0 或 Mono,我们就可以在任何 Windows/Unix/Linux 环境中运行。
  • XSockets 在 IIS、Azure 中作为 Windows 服务或控制台应用程序运行……您甚至可以在 Raspberry PI 或其他任何东西(电话或其他任何东西)上运行服务器,只要对 .NET/Mono 的要求是充满。
  • XSockets 可以在 .NET/Mono 环境中开发,因此您实际上可以从使用 Xamarin 的 MAC 和使用 Visual Studio 的 Windows 开发插件。
  • 当您在 MVC3/MVC4 中安装后备以进行开发时,会自动设置回退,但您也可以在 Azure 和 WebForms 上设置回退。
  • SignalR 让服务器环境决定客户端是否可以使用 websockets,XSockets 总是有 websockets,只有当客户端不支持 websockets 时才回退到 longpolling。
于 2013-07-30T15:57:54.157 回答