Maison > développement back-end > tutoriel php > 聊天系统 - 关于php做聊天室

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

WBOY
Libérer: 2016-06-06 20:48:22
original
1278 Les gens l'ont consulté

我们现在在做一款看直播的产品,有聊天室功能,类似新浪这个: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的,也没多线程。做这么高负载不错了。

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal