PHP中的实时通知/推送通知系统

3

我正在构建一个大学项目,需要实现一个像Facebook那样的通知系统。比如说有两个用户登录。当一个用户评论/赞另一个用户的帖子时,就会为点赞和通知都创建数据库条目。同时,发帖作者也应该收到点赞/评论事件的通知,并更新通知图标。项目使用PHP、Jquery、AJAX和likes构建。有人能告诉我如何实现实时通知而没有瓶颈吗?非常感谢提供参考链接、代码或教程。


你可能想要了解一下WebSockets。 - Calimero
@Calimero 我已经搜索过了,还在继续寻找。目前还没有找到好的资源。 - Yomesh
我猜pull-based更基于php和jquery,但为了保持脚本和负载的小巧,也许你可以考虑增加一个列来表示点赞/评论/通知,这一列仅返回true或false以通知用户在js->php查询期间,只有当用户选择阅读通知时才执行完整的查询并同时将用户行通知列更新为0,否则它只是对单个列(notication = 1 WHERE user_id...)进行简单的选择,供js每500ms或1000ms执行后台查询。对于push-based,它相当复杂。 - Mark Ng
1个回答

0

这些基于PHP的系统都是基于PULL而非PUSH的通知。

逻辑是尽可能频繁地查询数据库,平衡客户端负载和实时性。

例如:

function pullNotifications(){

    $.ajax({
        url:"notificationFetch.php",
        success: function(data){
            // Parse data
            // Check new notifications if any
            // If yes notify user

            //....

            setTimeout(function(){
                pullNotifications();
            },1000); // Calling it again after every one second
        }
    })
}

2
运行脚本或 AJAX 调用以在特定间隔后检查新通知将是低效的,对吗? 有更好的高效方法吗? - Yomesh
我认为那对于你的"大学项目"来说会过于复杂。 - void
是的,但我想要实现或学习一种更好的方法来做这件事。我感谢您的回答。然而,我仍在寻求更好的选择。 - Yomesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接