【发布时间】:2013-01-21 21:37:59
【问题描述】:
我想知道处理我的网站用户将相互发送的 cmets 推送通知的最佳方式。
当提交新评论时,它显然会存储在我的数据库中。但是,我还想将每个用户的 cmets 存储在 memcache 中或作为会话数据(什么被认为是最好的?),这样每次用户访问我的网站/刷新页面时,他们都可以快速获得未读通知而不会点击我的数据库。
我想到的一种方法是在用户收到推送通知时,将 AJAX 请求发送回服务器以更新他们的内存缓存/会话数据。
问题是如果用户未登录或当前未使用该站点,该怎么办。即使用户不在那里“接收”它,AJAX 请求是否仍会被发送?还是 AJAX 请求会“等待”并在用户重新访问该站点时立即发生?首先以这种方式处理通知是否是个好主意?
【问题讨论】:
-
查看 Redis。 redis.io Havent 自己实现了它,但听起来像你要找的。span>
-
@cgatian,谢谢,我只是在看那个,尽管在这种情况下尚不清楚为什么 Redis 与 Memcached 相比。另外,我是一个人操作,我花了很多时间来实现我目前所做的事情,将 Redis 添加到组合中似乎令人生畏,你知道它的易用性吗?
-
在此处查看 Redis 通过 Memcached 提供什么的答案:stackoverflow.com/questions/10558465/memcache-vs-redis
-
感谢@ErikNedwidek,现在我已经考虑了更多,看来切换技术并不能真正解决这个问题。我的问题更多关于如果用户不在那里接收推送通知如何处理。推送通知是否只是“等待”直到用户出现或者如果用户不在那里接收它就会丢失?
-
看我的回答。没有真正的方法可以使用 AJAX 进行推送通知。在 AJAX 中,它们始终是客户端轮询。如果用户不在您的网站上,则没有客户端进行轮询。
标签: php codeigniter session memcached push-notification