实时刷新多个房间(PHP& AJAX)

时间:2012-06-24 16:30:16

标签: php ajax sockets comet live

我有超过200个房间,人们可以访问我的网站,只能通过viewroom.php观看发布的消息(他们不能说话或写字或其他什么,只看到)?id = xx

另外,我有人用移动应用程序向特定房间发送消息(仅发送),应用程序在我的服务器中调用文件sendmes.php?room = xx,此时我已全部工作但没有实时刷新,我想知道最好的系统,也可以作为轻便的服务器负载通过sendmes.php发送到viewroom.php没有沉重的lops和

我尝试使用Ajax和很长时间,但是这种方式迫使我对mysql或文件进行循环,在我看来这是一种高效的服务器负载方式

2 个答案:

答案 0 :(得分:0)

我强烈建议您更改系统的后端架构。

使用Node.js查看Socket.IO。它是Web套接字(以及long-polling AJAX if the browser support isn't there)的简单包装器,使整个过程变得简单。让您的客户将他们的所有消息发送到您的Node实例,然后让您的Node应用程序写入您的数据库以进行存档。

答案 1 :(得分:0)

如果您要使用消息,我建议使用已建立的消息传递系统 - 例如RabbitMQ(我们实际上在其中一个项目中使用它非常成功) - 而不是编写您的自己存储和排队的逻辑。

这样你唯一需要编写的就是一个轻量级的“服务器推送”脚本 - 它会向消息传递子系统查询传入消息,并将它们路由到特定的房间/用户。