这个问题不是代码级别的问题,而只是一个功能性问题/头脑风暴。
在我的PHP脚本中,我想实时向另一个用户发送通知,我想到了这样做的一种方式,如果你知道更好的那些,请务必将它们留在评论!
我对此功能的想法是使用用户的ID和消息插入数据库表,然后在用户端不断循环选择请求,以查找与其ID内对应的通知。 _SESSION,如果发现了消息,则将其从表中删除并显示给用户。
这似乎可以"应变"我的数据库和我想知道是否有更清洁的方法来做到这一点,如果有人可以发布一个带有3秒延迟的javascript循环和一个ajax帖子到其中的php文件,也会非常感激,
全心全意,
詹姆斯
答案 0 :(得分:2)
更简洁的方法是使用websockets。轮询,长轮询和流媒体将完全解决您认为的问题。
消息接收者还需要通过websockets通过广播进行监听。服务器将通知所有侦听该特定事件的websockets。
您不希望阻止数据库读写。只需从一个用户处获取操作并将其发送到侦听该事件的所有其他websockets(其他用户的客户端实例)
对于事件历史记录,您可以考虑使用消息队列持久保存到数据库。
答案 1 :(得分:1)
使用正确索引,结构良好的表格,它根本不会对数据库造成压力。当然,这假设你的间隔是合理的(你提到的3秒很棒)。这就是所有实时会话检查网站的工作方式。那些需要更多的东西,比如聊天系统,基本上是更频繁和/或更大数据包传递数据的东西,他们使用websockets。
答案 2 :(得分:0)
使用Websockets或Server-Sent-Events
只是一个想法:
{"message" : "hello", "target" : "User-2"}