1

我正在 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 等等......

4

2 回答 2

2

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

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

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

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

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

于 2013-09-21T20:08:13.947 回答
0

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

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

我敢肯定,有很多可重用的 Node 模块让您不必重新发明自行车。

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

于 2013-09-19T08:54:12.773 回答