首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

后端使用 flask,前台系统用户登录之后有未读消息的数目提醒,后台系统进行推送消息,请问后台系统推送消息之后,前台系统应该怎么更新未读消息数?

  •  
  •   kayseen · 5 天前 · 857 次点击
    大概描述如题
    比如说,前台系统的用户登录之后,在右上角有一个未读消息的数目提醒,比如现在有两个未读消息,现在后台系统的管理员又进行推送了一条消息,前台系统就应该有三条未读消息数了。请问在 flask 中应该怎么实现?
    
    10 回复  |  直到 2019-08-18 11:15:14 +08:00
        1
    vissssa   5 天前
    推一个未读总数
        2
    ebingtel   5 天前
    要么 websocket,要么前端轮询?
        3
    lybcyd   5 天前
    websocket,效果比较好,除了更新未读消息数量,也可以实时发送通知。嫌麻烦就 ajax 轮询,未读消息的话看消息种类吧,频率应该不需要太高。
        4
    kayseen   5 天前
    @lybcyd 嗯嗯,请问使用 websocket 的话,是使用的哪个 websocket 包比较好?
        5
    kayseen   5 天前
    @ebingtel 嗯嗯,请问使用 websocket 的话,是使用的哪个 websocket 包比较好?
        7
    ebingtel   5 天前
    @kayseen PY2 flask-socketio 资料不较多; PY3,有 websockets 库了
        8
    kayseen   2 天前 via Android
    @ebingtel
    @lybcyd
    @bugcoder
    麻烦问下,我一个后台系统的管理员推送消息通知,前台系统的所有用户接受通知,并且显示已读和未付。我是不是应该在后台系统维护一个管理员的通知信息表,在前台系统维护一个前台用户关联后台信息的表,然后每一次后台管理员推送消息,就往所有用户关联的消息表中写入记录?
    这样的话,如果有 10000 个前台用户,那么后台管理员每一次推送消息,就要写 10000 条数据吗?
        9
    lybcyd   2 天前
    @kayseen 这个我也不是非常懂,简单说说我的想法,蹲一下大神吧。
    你说的做法是最直观的,PHP laravel 自带的通知系统好像就是这么做的。但是用户稍微一多,这个一次性写入量就太大了,发布通知的操作会非常慢,所以要加缓存和队列处理一下,先发布消息再异步写入数据库。
    要么就换个思路,只维护一个已读消息表。默认所有消息未读,如果用户读取消息则插入进数据库,这样可以分散压力,数据量也不会那么大,就是查询语句稍微麻烦一点(也没麻烦到哪里去)
    还有一种可能就是干脆不用关联表,用户加一个已读消息的字段,保存该用户已读消息。缺点就是有长度上限,可能不利于扩展。没试过这种方案,也是刚刚想到的。
        10
    ebingtel   1 天前
    @kayseen @lybcyd 消息分为两类:群发的、点对点的 1 ) 群发的,消息保存一条,每个用户保存一个已读记录 2 ) 点对点的,一个消息一条记录,用户保存一条已读记录
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2643 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 00:46 · PVG 08:46 · LAX 17:46 · JFK 20:46
    ♥ Do have faith in what you're doing.