大概描述如题
比如说,前台系统的用户登录之后,在右上角有一个未读消息的数目提醒,比如现在有两个未读消息,现在后台系统的管理员又进行推送了一条消息,前台系统就应该有三条未读消息数了。请问在 flask 中应该怎么实现?
1
vissssa 2019-08-14 15:43:45 +08:00
推一个未读总数
|
2
ebingtel 2019-08-14 15:52:22 +08:00
要么 websocket,要么前端轮询?
|
3
lybcyd 2019-08-14 16:46:20 +08:00
websocket,效果比较好,除了更新未读消息数量,也可以实时发送通知。嫌麻烦就 ajax 轮询,未读消息的话看消息种类吧,频率应该不需要太高。
|
6
bugcoder 2019-08-14 16:52:38 +08:00
|
8
kayseen OP |
9
lybcyd 2019-08-17 23:13:32 +08:00
@kayseen 这个我也不是非常懂,简单说说我的想法,蹲一下大神吧。
你说的做法是最直观的,PHP laravel 自带的通知系统好像就是这么做的。但是用户稍微一多,这个一次性写入量就太大了,发布通知的操作会非常慢,所以要加缓存和队列处理一下,先发布消息再异步写入数据库。 要么就换个思路,只维护一个已读消息表。默认所有消息未读,如果用户读取消息则插入进数据库,这样可以分散压力,数据量也不会那么大,就是查询语句稍微麻烦一点(也没麻烦到哪里去) 还有一种可能就是干脆不用关联表,用户加一个已读消息的字段,保存该用户已读消息。缺点就是有长度上限,可能不利于扩展。没试过这种方案,也是刚刚想到的。 |
10
ebingtel 2019-08-18 11:15:14 +08:00
|