要选择的Websocket服务器



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

  • 支持MySQL,Memcached和Gearman
  • 支持https连接,非常重要
  • 可选支持 IE(但如果好处松散,这并不重要)
  • 可 伸缩

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

如果我使用 PHP 的,我可以使用 PHP 代码和 ZF2 函数,很容易开发,但我没有非 html5 浏览器支持(我这里有 ssl 支持吗?

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

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

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

所有解决方案都是可扩展的。问题真的是;您希望多久开始考虑扩展?何时要垂直扩展并向服务器添加其他资源?何时要添加另一台服务器(水平扩展)并处理这些服务器之间的同步连接和状态信息?恕我直言,您将使用 PHP 解决方案更快地执行此操作。

如果您主要想用 PHP 编写代码,并且希望保持简单,那么我建议您使用托管实时服务作为应用程序堆栈的一部分。

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

  • 了解实时 PHP 应用程序
  • 使用 PHP 构建实时 Web 应用程序

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

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

我敢肯定,有很多可重用的 Node 模块供您不要重新发明一个 bycicle。

当然,如果它适合您,您可以使用一些 PHP 驱动的守护进程并偶尔重新启动它以在一定程度上控制它的稳定性。

相关内容

  • 没有找到相关文章

最新更新