Websocket服务器有哪些选择?

时间:2013-09-19 08:42:15

标签: php mysql websocket memcached

我正在ZF2中开发一个大型PHP应用程序,我需要在这个应用程序中进行实时交互,所以我选择了websocket。 我有PHP,Mysql,Memcached。我需要一个websocket服务器。什么是最好的选择。 我的websocket服务器的要求:

  • 支持mysql,memcached,也许还有gearman
  • 支持https连接,非常重要
  • 可选择支持IE(但如果松散的好处,这并不重要)
  • 可扩展

我的问题是从PHP(扳手)websocket服务器或基于Node.js(socket.io)的服务器中选择。 我应该选择哪个?

如果我使用PHP,我可以使用PHP代码和ZF2功能,因此易于开发,但我没有非html5浏览器支持(我在这里有ssl支持吗?)

如果我使用socket.io我有所有浏览器支持和后备,但在这里我需要重新编写所有函数(在js中)以使用mysql,memcached等等...

2 个答案:

答案 0 :(得分:2)

WaterSpout Server声称提供WebSocket或Long-Polling连接: https://github.com/chrisnetonline/WaterSpout-Server

所以这可能是适用于所有浏览器的解决方案。

所有解决方案均可扩展。问题确实存在;您想多久开始考虑缩放?您希望何时垂直扩展并向服务器添加其他资源?您何时想要添加另一台服务器(水平扩展)并处理这些服务器之间的同步连接和状态信息?恕我直言,您将通过PHP解决方案尽快完成此任务。

如果你主要想用PHP编写代码而你更喜欢保持简单,那么我建议你使用hosted realtime service作为应用程序堆栈的一部分。

一些相关帖子(我写的 ):

答案 1 :(得分:0)

我推荐Node.js,因为PHP不是应用程序的最佳解决方案,它必须长时间保留在内存中(PHP泄漏内存)。

http://software-gunslinger.tumblr.com/post/47131406821/php-is-meant-to-die

我确信有很多可重复使用的Node模块,你不要重新发明自行车。

当然,如果它对您有用,您可以使用一些基于PHP的守护进程并在一段时间内重启它以在一定程度上控制它的稳定性。

相关问题