通知用户,有未读新文章,用那种方案比较好?

2016-09-14 12:05:16 +08:00
 rogwan
用户关注了一些博主,然后把这些博主的新文章,推送到用户的首页。当消息队列里用户有新订阅的文章的时候,推送一条通知给用户,告诉他有未读新文章。

一般是给每篇文章记录一个“已读 /未读”的状态好?
还是我只需要记录一下用户最后一次请求的刷新时间(然后这个时间戳之后,有新文章就发通知告诉用户有未读的文章)?
2132 次点击
所在节点    Python
12 条回复
loading
2016-09-14 12:18:30 +08:00
最好当然是 websock 实时。
用 flask 带的 flash 那样也能凑合用。
rogwan
2016-09-14 12:24:19 +08:00
@loading 这个还要推送到 APP 里,用第三方的 sdk ,所以只需要后台发条未读通知给第三方推送接口就可以。
beidouxun
2016-09-14 12:27:04 +08:00
一般在文章表不可能标识某个人已读或者未读,因为他是面相大众的。比如像私信这样的面相个人的可以。当然,非要标识也可以,再建一张表存储。我感觉其实没有必要记录。
rogwan
2016-09-14 12:34:58 +08:00
@beidouxun 是的。像微博那样的“有未读微博”的提示,应该是每个用户都有一个单独的 feed 流,这样来判断这个 feed 流中,是否有新内容吗?
beidouxun
2016-09-14 12:47:46 +08:00
@rogwan 应该是的,用户上线时判断 feed 是否有未读信息,有就推送。我最近就在研究 websocket 消息推送
xycool
2016-09-14 13:28:39 +08:00
siteshen
2016-09-14 13:44:05 +08:00
model
-------

+ user.n_unread_message
+ user.message_ids

code
------

.. sourcecode:: python

create_post(user, post):
# offline worker
for follower in user.followers:
follower.n_unread_message += 1
user.message_ids.append(post_activity.id)
rogwan
2016-09-14 15:55:25 +08:00
@beidouxun 现在用户上线的判断,类型也比较多。 web page , app 客户端,用户 cookie 一直保留不情况,怎么判断上没上线过呢?
rogwan
2016-09-14 16:02:19 +08:00
@xycool
1 、推:稍微多点人,工作量太大了 呵呵
2 、拉:相对合理,就是用户两次之间的状态判断(只能发现距用户上次最后一次阅读的内容,至当前时间段内的未读新内容),比较难弄啊,我说的就是这个问题。另外,你说的这个拉,还是有用户登录后,在拉新。我说的是发现了“新”,推送通知,应该属于更“被动”的做法。
rogwan
2016-09-14 16:09:37 +08:00
@siteshen 谢谢你的方案,这样会一直推新通知,如果上次推了通知,用户还没来看未读文章,有推了好多条通知给用户(特别是在 APP 里),估计用户很烦的。。。
beidouxun
2016-09-14 21:09:18 +08:00
beidouxun
2016-09-14 21:20:27 +08:00
@rogwan 上没上线好判断,因为你有登录入口啊!但是用户在线离线确实不好判断,但可以多种判断相结合。比如第一种:注销,这个很好判断。第二种:websocket 用户打开网页产生 connectionid 关闭移除。根据客户端链接判断。但是真要做到非常准确,确实没有一个很好的方法!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/306163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX