5

我有一个相当大的 Web 应用程序构建,使用 SproutCore 和 PHP 作为后端。我现在想要的是使用 websockets 来实时更新我的​​客户端应用程序。据我所知,PHP 处理持久连接真的很糟糕。所以我一直在想,我可以使用 Go 来处理 websockets 连接,并在每次收到请求时调用我的 PHP 脚本(这个似乎使它成为可能)。

所以我的第一个问题是,你们认为这是一个好主意(也是一个可行的主意,我找不到这样做的人)还是我应该坚持使用 PHP?

如果我使用 Go 来处理 websockets 连接,我也一直在想我可以逐步从 PHP 转移到只使用 Go(因为它比 PHP 快得多)。如果我这样做,我将不得不能够从 PHP 调用一些 Go 包。这可以用 PHPexec函数完成吗?有没有更好的办法 ?再说一遍,这是个好主意吗?

4

2 回答 2

9

Go 非常适合 websocket 服务器。我已经在 Go 中构建了 websocket 服务器,并且对它的运行方式非常满意。我有一项服务每月在 Go websocket 服务器上处理 30 万用户,它几乎不使用亚马逊 AWS 微实例 1% 的 CPU。再高兴不过了。

Websockets 确实需要像 Go 和 Node.js 这样的事件驱动框架来最大化服务器资源。像 PHP 这样的分叉 Web 进程比事件驱动框架消耗更多的资源。

如果您需要在某些时候从 PHP 调用 Go,我建议使用 API 调用。虽然exec也可以。

于 2013-04-16T06:37:32.553 回答
-1

这是一个老问题,但我在这个问题上的两分钱......

有一个非常好的 php 库可以完全满足您的要求 - websockets。它被称为棘轮。我不会使用 node.js(过度炒作)或者当 php 可以做完全相同的事情并且它是我最熟悉的语言时去。在大多数情况下,与 websockets 相比几乎没有性能提升是不值得切换堆栈的。

如果您打算使用 Ratchet,其他有用的链接:

于 2014-02-13T17:41:24.540 回答