PHP Jquery:聊天系统,啥是理想的框架?
Posted
技术标签:
【中文标题】PHP Jquery:聊天系统,啥是理想的框架?【英文标题】:PHP Jquery: chat system, what is the Ideal framework for this?PHP Jquery:聊天系统,什么是理想的框架? 【发布时间】:2011-11-10 04:20:55 【问题描述】:我想为我的网站实现一个聊天系统。该功能将与 facebook 聊天非常相似。聊天将是一对一的。
我知道如何使用 php、mysql 和 JQuery 构建聊天系统。但我担心的是,从长远来看,它不会扩展到大量用户。
使用 JQuery,我会每秒发出请求以保持聊天窗口更新,或者如果用户正在发送与另一个用户聊天的请求。这将导致服务器上的额外负载,因为用户群会增加超时。
有人告诉我使用 PHP,因为这不是一个理想的解决方案,我应该研究一下我以前从未尝试过的彗星编程。
我的问题是,有没有我可以使用的预构建框架,或者更好的构建方法?
我听说过 NodeJs 和 APE,但我的服务器不支持这些。
谢谢各位。
编辑:与我的服务器人员交流后,我可能会更改我的操作系统,以便我可以运行 NodeJS。 nodejs 的可扩展性术语有多好,它会满足我的需求吗?
【问题讨论】:
您的服务器还支持哪些其他技术? 可能是 PHP 非阻塞 IO => thethoughtlab.blogspot.com/2007/04/…。我还没有尝试过,因为我喜欢 node.js,但它可能会工作...... 我认为支持的语言 C PHP python 2.4。 nodejs 好用吗?如果我更改服务器上的操作系统,这将起作用。 【参考方案1】:PHP 和 Comet 并不相互排斥。 Comet 只是一种服务器推送技术,因此您不必每秒钟都进行轮询。您在 PHP 和 JS 中实现 Comet,它不是一种单独的编程语言。
虽然:我不建议您自己编写聊天程序,除非您需要非常具体的功能。这是耗时和容易出错。 使用其中一种预制解决方案,例如:
http://www.phpfreechat.net/
或 java IRC 聊天室。谷歌了解更多。
【讨论】:
没有好的预制解决方案可以很好地扩展并且价格便宜。做你自己的。 make a chat in 12 lines using nowjs。聊天很容易。【参考方案2】:正如Rok Kralj 所说,Comet 是一种范式,可以应用于不同的技术。如果您想对此进行研究,PHP & Comet 问题是一个很好的起点。
人们普遍认为 PHP 作为一种实时技术并不能很好地扩展。 Facebook,他们是一家 PHP 公司(尽管 ended up compiling their PHP down to C (or maybe C++) for efficiency)。最常见的解决方案是使用专用的realtime technology 进行实时通信,并将其保留在您的网络服务器之外。
在技术选择方面,我会考虑WebSockets,因为它们已成为实时双向通信的标准。一些“彗星”服务器也使用 WebSockets 作为传输,并回退到用于旧版浏览器的效率较低的 HTTP 流式传输或 HTTP 长轮询。
如果您考虑使用托管服务,并且不想仅仅局限于聊天功能,希望在某个时候将实时通知、视觉协作或游戏添加到您的应用中,那么 http://我工作的 pusher.com 提供托管的实时消息服务,您可以轻松实现聊天功能。
【讨论】:
以上是关于PHP Jquery:聊天系统,啥是理想的框架?的主要内容,如果未能解决你的问题,请参考以下文章
PHP/Ajax 简单聊天 - 将管理员用户名颜色设置为红色
实时聊天、消息处理 - Socket.io、PHP、MySQL、Apache