适用于网站内网络聊天应用程序的正确工具


Right tools for in-site web chat application

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

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

我很感兴趣在这种情况下你会用什么方法?您将实现什么体系结构的系统?

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

谢谢。

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

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

内部解决方案将从评估服务器的需求开始。您预计有多少个并发连接?你能控制低级别的操作系统功能吗。开放套接字和开放文件限制似乎是共享托管计划的主要限制因素。因此,您可能需要评估不同的托管计划。Node&PHP就是AppFog。Appfog最多可免费提供2gb和10个实例,这可能有助于您入门。如果你想要完全控制,我会重新修复一个专用服务器,或者类似亚马逊AWS的东西。

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

Ballons.io的源代码是一个很好的起点。这是一个写得很好的开源聊天,它利用了redis,这是PHP和node.js之间会话管理的常见解决方案。最棒的是,你可以在AppFog上构建源代码,并在几分钟内测试出一些内部解决方案和代码,而不需要任何成本!

祝你好运!