PHP中的真实通知/推送通知系统
Posted
技术标签:
【中文标题】PHP中的真实通知/推送通知系统【英文标题】:Real notification/push notification system in PHP 【发布时间】:2016-02-27 02:02:47 【问题描述】:我正在构建一个大学项目,在该项目中我需要实现一个通知系统,例如 Facebook,假设有两个用户登录。当一个用户 cmets/likes 另一个用户的帖子时,会为喜欢和创建一个数据库条目通知。同时,帖子作者也应该得到点赞/评论事件的通知,并且通知图标应该更新。项目是使用 php、Jquery、AJAX 等构建的。谁能告诉我如何在没有瓶颈的情况下实时实现这一点?参考链接或代码或教程将不胜感激。
【问题讨论】:
你可能想看看 websockets @Calimero 我确实搜索过它,但仍在寻找。还没有找到好的资源。 我猜pull-based更多是基于php和jquery的,但是为了保持脚本和payload的小,也许你可以考虑有一个like/comment/notification的列,这个列只返回true或 false 用于在 js->php 查询期间通知用户,只有在用户选择阅读通知时才执行完整查询,同时将用户行通知列更新为 0,否则只是一个简单的在单个列上选择(通知 = 1 WHERE user_id ...),以便 js 仅每 500 毫秒或 1000 毫秒执行一次后台查询。对于基于推送的,它相当复杂。 【参考方案1】:这些基于 PHP 构建的系统无论如何都是基于 PULL 的通知,而不是基于推送的通知。
逻辑是您尝试尽可能频繁地查询数据库,以保持客户端负载和实时性之间的权衡。
例如:
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
)
【讨论】:
在特定时间间隔后运行脚本或 AJAX 调用来检查新通知的效率会很低,对吧?有没有更有效的方法? 我认为这对你的college project
来说太复杂了
是的,但我想实施或学习更好的方法来做到这一点。我很感激你的回答。但是,我仍然在寻找更好的选择。以上是关于PHP中的真实通知/推送通知系统的主要内容,如果未能解决你的问题,请参考以下文章