如何检测传入的聊天消息?

时间:2010-06-30 02:18:45

标签: php mysql ajax chat ajax-polling

我正在使用PHP,AJAX,MySQL数据库和大量jQuery来构建基于Web的聊天系统(类似于Facebook Chat)。我被困在如何“倾听”来电聊天......何时知道有人试图与我聊天......并且知道这是一个新的聊天,而不是现有的聊天。

现在,我正在轮询以查看数据库表中是否有新的插入,但它似乎效率很低......服务器的开销很大。

有没有办法接收通知,例如,在MySQL数据库的表中插入了一行,以便不是经常轮询,我可以得到通知,然后查看插入的内容?

如果有更好,更有效的方式来创建这种一对一的聊天关系,请给我一些建议。

谢谢,Hristo

2 个答案:

答案 0 :(得分:5)

你必须使用轮询,但是你可以使用一种名为Comet的技术,它涉及长轮询,即发送一个由服务器保存的ajax请求,直到聊天请求进入。

http://en.wikipedia.org/wiki/Comet_(programming)

答案 1 :(得分:1)

我认为轮询是推动服务器端更改的唯一方法。