用户注册时获取实时通知

时间:2015-06-30 14:14:21

标签: javascript php jquery html ajax

我希望在有人注册我的网站时创建一个通知系统。我想要的通知系统类型类似于stackoverflow或Facebook。我想要一个数字类型通知来显示我有多少新注册,但是一旦我点击查看通知(新注册),我希望通知警报(如红色方块stackoverflow)消失。

我正在用PHP写这个,并有一个名为users的db表,我可以从中提取用户。我不确定如何在没有选择所有用户给我数量的情况下收到这样的通知?

所以说我刚注册了20个用户和2个新用户。我希望通知显示数字2.然后当我点击它时,该通知就会消失。

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

我正在设计这样的系统。

我这样做的方法是将应用程序写入的事件的结构化日志记录到消息队列/消息代理中。

然后我有一个消息使用者读取事件并更新我想要的任何指标。

在这种情况下,您需要一个消息使用者来决定哪些用户应该接收哪些消息(某些消息可以发送给所有消息,一些消息可以发送给特定的人)。

每个用户都必须轮询一个提供这些消息的API,或者打开一个websocket来接收数据作为流(这样更快)。

我会在消息使用者和API之间放置一个中间存储。我会推荐像Redis一样轻快的东西。

这需要设置很多基础设施,还有其他快速而肮脏的解决方案,但在我看来这是非常小的。

答案 1 :(得分:1)

假设每个用户都有一个唯一的ID,你可以通过自己添加很少的PHP代码来实现它。

答案肯定会取决于你想要达到的自己的需求和复杂程度,如果你想要实现一些大而且可以进化的东西,@ firelynx答案真的很棒(你可以肯定会有很多乐趣并且学到很多东西)。

但是如果你只想要一个非常基本的实现,我建议你在数据库中创建一个“通知”表,你可以使用(至少)列[id,user_id,message,new]其中new是tinyInt或者任何等价物。

然后向您选择的用户添加一些通知,默认情况下new应为1。当用户看到通知时,只需将new设置为0即可获得相关通知。 然后,可以根据用户组或某些条件选择应接收这些通知的用户。

如果你想要一些简单而又不那么灵犀的东西,这应该可以很好地完成工作,你也可以添加一个“图标”栏来增加一些乐趣。