0

我正在创建应该成为我网站一部分的实时聊天应用程序。网站完全使用 PHP 开发。现在的问题是我处于两难境地,对于将成为我网站一部分的实时聊天应用程序平台来说,什么是最合适的工具。它应该使用我网站上的用户并与它所属的 PHP 应用程序共享会话。

我做了一些研究,正如我所想的那样——PHP+Apache 并不是像我的实时聊天那样基于 Web 套接字开发应用程序的最佳工具。Node.js 等其他平台看起来是正确的选择,但我不确定让 Node 与我的 PHP 应用程序共享资源是否容易。

我很感兴趣你会在这种情况下使用什么方法?您将实施哪种系统架构?

最后,我想告诉您,我的 PHP 网站是基于 MySQL 的,并且我正在使用 knockoutJS 进行客户端实现。它将在客户端使用 SocketIO,因为它具有后备策略和对非 HTML5 浏览器的支持。我知道它也可以在服务器端使用,但我怀疑它与 Node 或我目前不知道的其他解决方案之间。这就是我在这里问这个问题的主要原因。它在共享主机上运行的可能性很小,但我完全理解共享主机和套接字连接的问题(关闭端口、安装 Node 的无 SSH 等)。如果您对这种可能性有建议 - 写下来。否则就忘掉它,像在 VPS 上运行一样回答。

谢谢。

4

1 回答 1

2

如果您打算使用 node.js,有一些解决方案可以帮助您将 node.js 集成到您现有的 php 环境中。(例如,与 node.js 共享 PHP 会话) Node 不能很好地与 apache 配合使用,因此您可能需要考虑切换到 Nginx 和 PHP-fpm。

就个人而言,为了让这个“运行良好”,这对于一个简单的“聊天”应用程序来说是一个很好的变化。我可能会考虑集成已经开发的解决方案Comet Chat。或者,如果我想让它更加定制化,我会在单独的平台上构建使用现有架构的东西。 Firebase是一项非常棒的服务,它刚刚问世,看起来非常适合您的需求。如果这对您的用户来说是一个很好的解决方案,那么我将努力实现一些在 Node.JS 中构建的自定义内容。

内部解决方案将从评估您的服务器的需求开始。您期望有多少并发连接?您是否可以控制低级操作系统功能。打开套接字和打开文件限制似乎是共享主机计划的主要限制因素。因此,您可能需要评估不同的托管计划。适用于 Node 和 PHP 的一个好的 PaaS 解决方案是AppFog。Appfog 最多可免费使用 2gb 和 10 个实例,这可能会帮助您入门。如果您想要完全控制,我会推荐一个专用服务器,或者类似亚马逊 AWS 的东西。

然后你需要评估你的架构。就像我说的,Nginx 在为 PHP 和 node.js 提供服务方面做得非常好,但是还有更多选项可以更好地满足您的需求。

Ballons.io的源代码是查看和开始学习的好地方。这是一个写得很好的开源聊天,它利用了 redis,这是 PHP 和 node.js 之间会话管理的常用解决方案。最重要的是,您可以在 AppFog 上构建源代码,并在几分钟内测试出一些内部解决方案和代码,而无需您支付任何费用!

祝你好运!

于 2013-02-16T21:56:47.457 回答