【问题标题】:Modern solution to WebSocket servers?WebSocket 服务器的现代解决方案?
【发布时间】:2012-08-01 00:51:45
【问题描述】:

对于我的网站,我用 C#(最喜欢的编码语言)编写了一个 WebSockets 服务器,它使用 Fleck,它大约有 600 行代码。一切似乎都运行良好(虽然有时有点不稳定。不确定是我的代码还是 Fleck 的问题)。

但是,我想将它从我的计算机转移到一个实际的域中,我不确定是否有任何托管服务提供商可以支持这样的 .NET 控制台应用程序。

我在想也许我必须用另一种语言(如 PHP)重写它,但我对整个想法有点不确定。是否有任何流行的托管服务提供商可以支持我正在寻找的内容?即使他们是,这是个好主意吗?我想它可能不如使用 Perl、PHP 或 Python 作为服务器的典型解决方案安全或慢。 (很多P)

最后,如果重写是个好主意,我不确定我会用哪种语言编写它。已经有一段时间了,我不确定每个人还在使用什么。 PHP 是否仍然被认为是 Web 服务器最受支持和最安全的?

哪种 WebSockets 实现最适合?我花了一段时间才找到 Fleck,而且 PHP 衍生产品的数量似乎是原来的两倍,我再次感到有点不知所措。另外,Stackoverflow 上很多关于 WebSockets 的帖子都是两年前没有得到支持的。

抱歉,我的问题太天真和缺乏重点,但正如您所见,我对我在这里应该采取的行动方案有些困惑,我正在寻找一些见解。感谢阅读。

【问题讨论】:

    标签: c# php hosting websocket web-hosting


    【解决方案1】:

    可能最流行的 WebSocket 服务器是Socket.IO。它是在Node (Javascript) 中实现的,当 WebSockets 支持不可用时,它会回退到长轮询/AJAX。

    WebSockets 最受支持的实现是 python pywebsocket 项目,Mozilla 和 Google 都使用它来开发和测试他们的客户端浏览器实现。此外,pywebsocket 旨在轻松与 Apache 集成,允许您在同一端口上运行 Web 服务器和 Websocket 服务。

    如果您的应用程序只需要基于 WebSocket 的消息传递服务并且主要是点对点的,那么您可以考虑使用商业 WebSocket 服务,例如 Pusher。这可以让您不必为此托管和管理自己的服务器。

    我不推荐将 PHP 用于 WebSocket 服务器。直到最近,还没有一个 PHP 实现同时支持旧的和新的 WebSocket 协议变体。当前的 iOS 设备仍在使用旧版本的协议,Chrome、Firefox、IE10 和基于 Flash 的 WebSocket polyfill web-socket-js 使用新版本的 IETF 6455 协议。

    另外,您问 PHP 是否仍然被认为是 Web 服务器最受支持和最安全的。当然,PHP 一直都有很好的文档和示例以及非常广泛的部署,因此您可以说它得到了很好的支持。然而,PHP 在安全性方面落在列表的底部附近。我当然不会用 PHP 从头开始​​重写你的应用程序。

    如果您偏爱 C 类语言,您可以考虑使用 libwebsockets 来构建 C 或 C++ WebSocket 服务器。 Andy Green 开发和维护 libwebsockets,并参与了制定标准的 IETF 工作组。

    Ruby 是另一种语言/社区,它已经看到大量使用 WebSockets(可能仅次于 Node)。最流行的 Ruby websocket 库是em-weboskcet

    【讨论】:

    • 这是一个很好的列表,从我的角度来看,我想补充一点,如果你想使用 Python 并且愿意为性能牺牲一点可支持性(或者只是更喜欢极简主义的解决方案),有一个看看 gevent-websocket gelens.org/code/gevent-websocket
    【解决方案2】:

    你可以试试 node.js,它是“新的”,而且看起来不错。 问候

    【讨论】:

    • Node (node.js) 还没有内置的 websocket 支持。也许您指的是非常流行的 Socket.IO,它是在 Node 中实现的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2015-01-15
    相关资源
    最近更新 更多