我需要为我网站的用户建立一个通知系统。 每个用户都会关注某些主题,因此,当有人发布有关某个主题的内容时,遵循此主题的每个用户都必须收到通知。
现在我有一个cronjob,它获取每个用户通知的最后开放时间的日期,然后我获得在此日期之后发布的所有帖子,然后我将其保存到每个用户的通知表中
--------------- ---------------------------------------
| new_post | | USERS |
--------------- ---------------------------------------
| id | post | |ud_usr |last_notif_opening(datestamp)|
--------------- ---------------------------------------
| 1 string | | 1 | 2017-08-21 10:10:10 |
那些,其中,我实际上在每一个中存储了新帖子的id,所以接下来我得到那些表的记录,然后我得到带有id列关系的文本。
-notification_user1
-notification_user2
-notification_user3
我认为这不是一个好的解决方案,因为用户可能无法在合适的时间收到通知,因为cronjob正在查看其他用户的通知。
你能帮助我找到更好的解决方案吗?
答案 0 :(得分:1)
您应该使用实时解决方案,对于实时Web应用程序,有许多技术可供使用,目前Web上最常用的技术可能是nodeJs
在PHP中使用像Laravel这样的框架时,Laravel框架内部有一个强大的通知组件,但如果你想使用纯PHP或其他php框架,最有效的方法是在PHP中使用WebSockets。
使用WebSockets时,您需要一个websocket服务器来处理两个对等体之间的通信,让我在这方面准确解释您的问题。 您正在寻找的是某种渠道,您希望用户在渠道上订阅,将通知推送到渠道,以便订阅者可以获得推送的消息或数据。 在PHP中实现这种功能并不困难,您应该使用以下功能:
答案 1 :(得分:0)