2013-02-16 63 views
0

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

我做了一些研究,因为我认为 - PHP + Apache并不是真正的开发基于Web套接字的应用程序的最佳工具,就像我的实时聊天一样。像Node.js这样的其他平台看起来是正确的选择,但我不确定使Node与我的PHP应用程序共享资源是多么容易。

我很感兴趣你会用什么方法来处理这种情况?你会实现什么架构的系统?

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

谢谢。

回答

2

如果您打算使用node.js,那里有解决方案来帮助将node.js集成到您现有的php环境中。 (例如Sharing PHP sessions with node.js)节点不能和apache一起玩,所以你可能想要考虑切换到Nginx和PHP-fpm。

个人为了获得这个运行“好”,这是一个很好的变化,只是一个简单的“聊天”应用程序。我可能会考虑整合已经开发的解决方案Comet Chat。或者,如果我想让它更具个性化,我会在独立平台上构建一些使用现有体系结构的东西。 Firebase是一款非常出色的服务,它看起来完全符合您的需求。如果这对你的用户来说是一个很好的解决方案,那么我会实现一些在Node.JS中构建的定制。

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

然后你将需要评估你的架构。就像我说的那样,Nginx在服务PHP和node.js方面做得相当不错,但还有更多的选择可以更好地满足您的需求。

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

祝你好运!

+0

感谢您的回答。我看着Ballons.io,看起来它会起作用。对于共享会话 - 我将尝试使用您分享的有关PHP会话处理程序的链接。 – NemanjaSRB 2013-02-17 00:42:07