WebSocket服务器的现代解决方案


Modern solution to WebSocket servers?

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

然而,我想把它从我的计算机转移到一个实际的域,我不确定是否有任何主机提供商会支持这样的.NET控制台应用程序。

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

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

哪种WebSockets实现最适合?我花了一段时间才找到Fleck,那里的PHP衍生物似乎是原来的两倍,我再次感到有点不知所措。此外,关于WebSockets的Stackoverflow上的许多帖子都是两年前发布的,当时它们还不受支持。

很抱歉我的问题太天真,不够专注,但正如你所看到的,我有点困惑,不知道我在这里应该采取什么行动,我正在寻找一些见解。感谢阅读。

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

最受支持的WebSocket实现是python-pywebsocket项目,Mozilla和Google都使用该项目来开发和测试其客户端浏览器实现。此外,pywebsocket被设计为可以轻松地与Apache集成,从而允许您在同一端口上运行web服务器和websocket服务。

如果您的应用程序只需要一个基于WebSocket的消息服务,并且在很大程度上是对等的,那么您可以考虑使用像Pusher这样的商业WebSocket服务。这可以使您不必为此托管和管理自己的服务器。

我不建议将PHP用于WebSocket服务器。直到最近,还没有一个PHP实现同时支持旧的和新的WebSocket协议变体。较旧的协议仍被当前的iOS设备使用,较新的IETF 6455版本的协议被Chrome、Firefox、IE10和基于Flash的WebSocket polyfill网络套接字js使用。

此外,您还会问PHP是否仍然被认为是web服务器最受支持和最安全的。当然,PHP一直都有很好的文档和示例,并且部署范围很广,所以你可以说它得到了很好的支持。然而,就安全性而言,PHP在列表中几乎垫底。我当然不会用PHP从头开始重写您的应用程序。

如果您偏爱类C语言,您可能会考虑使用libwebsocket来构建C或C++WebSocket服务器。AndyGreen开发并维护了libwebsocket,并参与了IETF工作组开发该标准。

Ruby是另一个已经大量使用WebSockets的语言/社区(可能排在Node之后)。Ruby最流行的websocket库是em-weboskcet。

您可以尝试node.js,它是"新的",看起来不错。问候