PHP Jquery:聊天系统,这是什么理想的框架?

时间:2011-09-04 17:19:31

标签: php mysql ajax facebook comet

我想为我的网站实施聊天系统。功能将与Facebook聊天非常相似。聊天将是一对一的。

我知道如何使用PHP,MySql和使用JQuery构建聊天系统。但我担心的是,从长远来看,它不会扩展到大量用户。

使用JQuery我会每秒发出一次请求以保持聊天窗口的更新,或者用户是否正在发送请求与其他用户聊天。这将导致服务器上的额外负载,因为用户群将增加加班时间。

我被告知使用PHP这不是一个理想的解决方案,我应该研究一下我从未尝试过的彗星编程。

我的问题是,我可以使用任何预构建框架,还是构建它的更好方法?

我听说过NodeJs和APE,但我的服务器不支持这些。

谢谢你们。

编辑:在与我的服务器人员谈话后,我可能会更改我的操作系统,以便我可以运行NodeJS。 nodejs有多好,可扩展性是否符合我的需求?

2 个答案:

答案 0 :(得分:5)

PHP和Comet不是互斥的。 Comet只是服务器推送的一种技术,因此您不必再次轮询。你实现了Comet in PHP& JS,它不是一种单独的编程语言。

虽然:我不建议您自己编程聊天,除非您需要非常具体的功能。 耗时容易出错。使用预先制定的解决方案之一,例如:

http://www.phpfreechat.net/

或java IRC聊天室。谷歌更多。

答案 1 :(得分:3)

正如Rok Kralj所说,Comet是一种范例,可以应用于不同的技术。如果您想查看此问题,PHP & Comet问题是一个很好的起点。

人们普遍认为PHP不能像实时技术那样扩展得太好。 Facebook,谁是PHP的房子(虽然ended up compiling their PHP down to C (or maybe C++) for efficiency)。最常见的解决方案是使用专用realtime technology进行实时通信,并将其保留在Web服务器之外。

在技术选择方面,我会考虑WebSockets,因为它们已成为实时双向通信的标准。一些'Comet'服务器也使用WebSockets作为传输,并且回退到旧浏览器的效率较低的HTTP Streaming或HTTP Long-Polling。

如果您考虑使用托管服务,并且不想仅仅依赖聊天功能,那么希望在某些时候将实时通知,视觉协作或游戏添加到您的应用中,那么http://我工作的pusher.com提供托管的实时消息服务,您可以轻松实现聊天功能。