我在php和ajax中实现了一个简单的原始聊天系统。基本功能是,添加新联系人并与他们进行对话,基本上就像电报或whats'app。所以,我有很多聊天,现在我将实现一个功能,让通知新的消息给联系人。我读了一些关于此的内容,但我不太了解。如何做到这一点,我读到了长轮询或websocket,但这只适用于新的浏览器。现在它实现了这个非常糟糕的功能,在ajax中有一个函数,它每秒向服务器发送一个请求并重新加载当前聊天中的所有消息,而不是其他聊天,并且没有可视化通知。请帮帮我:DD
答案 0 :(得分:1)
关于如何执行此操作的一般想法是让观察者定期调用数据库以查看是否存在更改。您可以使用AJAX并调用该函数,例如setInterval(myAjaxFunction, 3000)
,例如每隔3秒检查一次。
为了检查数据库,一种方法是查看表中的记录计数并最初存储。类似的东西:
SELECT COUNT(*) FROM tableName
获取表格中的记录数。所以最初这样做并将其存储在JavaScript中,然后让AJAX返回发送查询的值。然后你可以做类似的事情:
if(queryResult != currentRecordCount){
currentRecordCount = queryResult;
sendNodification();
}
在AJAX通话后的success
。
这将共同使观察者每3秒检查一次,如果数据库中发生了某些变化,它将调用sendNodification
函数。