素材牛VIP会员
关于php做聊天室
 那***s  分类:PHP代码  人气:893  回帖:4  发布于6年前 收藏

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

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

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv3 码奴
吻***烟 技术总监 6年前#1

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

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

Lv7 码师
ph***16 JAVA开发工程师 6年前#2

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

Lv4 码徒
li***zi 其它 6年前#3

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

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

Lv3 码奴
路***6 Web前端工程师 6年前#4

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

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取