ホームページ > バックエンド開発 > PHPチュートリアル > 聊天系统 - 关于php做聊天室

聊天系统 - 关于php做聊天室

WBOY
リリース: 2016-06-06 20:48:22
オリジナル
1282 人が閲覧しました

我们现在在做一款看直播的产品,有聊天室功能,类似新浪这个:http://video.sina.com.cn/l/pl/globallive/1327915.html ,他那个用的是jetty,我想知道php平台有没有类似适合做聊天室的东西,谢谢!

我们现在用的传统的nginx+php+mysql做的,因为一个php-fpm进程要占几十M内存,一台服务器只能开几百个php-fpm进程,勉强承受几千人在线。

回复内容:

我们现在在做一款看直播的产品,有聊天室功能,类似新浪这个:http://video.sina.com.cn/l/pl/globallive/1327915.html ,他那个用的是jetty,我想知道php平台有没有类似适合做聊天室的东西,谢谢!

我们现在用的传统的nginx+php+mysql做的,因为一个php-fpm进程要占几十M内存,一台服务器只能开几百个php-fpm进程,勉强承受几千人在线。

http://cevin.me/archives/realtime-msg.html

聊天这东西首先要考虑的浏览器端和服务器的沟通。比如是 Ajax polling、comet 还是 WebSocket(这其中还涉及到浏览器兼容性问题)。三个方法在服务器的 implementation 是很不同的。

不想自己折腾的话,可以看看 Ratchet。

就用最简单的方式,前端ajax轮询请求,后端做好缓存应该没问题。
聊天内容就不要入库了,直接用redis的list结构,并且限制list的长度如10000条,毕竟在线聊天没人会看那么多的聊天记录。这主要解决了读的问题。
如果一定要保存所有聊天记录,就加个队列,平滑入库。写的问题也能解决。

你必须主动启动一个程序,常驻内存,开若干个线程和若干个端口监听。

php做不了的,因为php的请求都被动,不能主动运行成daemon的,也没多线程。做这么高负载不错了。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート