V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Vfei2017
V2EX  ›  问与答

v2ex 或者其他论坛的新消息通知是怎么做的?

  •  
  •   Vfei2017 · 2019-05-13 17:16:46 +08:00 · 2178 次点击
    这是一个创建于 2026 天前的主题,其中的信息可能已经有所发展或是发生改变。
    16 条回复    2019-05-13 18:55:25 +08:00
    HuasLeung
        1
    HuasLeung  
       2019-05-13 17:21:01 +08:00 via Android
    RabbitMQ 轻松实现
    nimrc
        2
    nimrc  
       2019-05-13 17:32:13 +08:00
    微博 推拉模型
    ylsc633
        3
    ylsc633  
       2019-05-13 17:50:18 +08:00
    v2 应该是 你加载页面 然后主动去拉取 消息通知!

    这样最方便,不占带宽,不需要连接..

    对于实时性不高的,这样做最方便.. 也最好实现
    Vfei2017
        4
    Vfei2017  
    OP
       2019-05-13 17:53:29 +08:00
    @ylsc633 那拉取的时候怎么识别新 /老的回复?
    Vfei2017
        5
    Vfei2017  
    OP
       2019-05-13 17:55:03 +08:00
    @HuasLeung RabbitMQ 感觉好复杂
    Vfei2017
        6
    Vfei2017  
    OP
       2019-05-13 17:56:21 +08:00
    @nimrc 微博 推拉模型有相关的文章吗
    woodensail
        7
    woodensail  
       2019-05-13 17:57:20 +08:00
    这块主要分两个技术点,一个是通知推送,另一个是消息订阅。
    前者的关键词是 「长连接 /长轮询 /websocket 」
    后者的关键词是 「消息订阅 /推拉模型」
    DavidNineRoc
        8
    DavidNineRoc  
       2019-05-13 18:00:17 +08:00
    你没有点击或者阅读过都是新消息...
    v2 应该是刷新页面的时候查询一下是否有未读消息
    常见的做法是轮询.
    即时推送可以考虑 websocket
    imningfeng
        9
    imningfeng  
       2019-05-13 18:04:37 +08:00 via Android
    并不是及时的,有缓存。
    ylsc633
        10
    ylsc633  
       2019-05-13 18:06:53 +08:00
    @Vfei2017 V2 的是 如果你点开 未读消息, 未读消息页面加载的时候,会把当前页面未读消息标记成已读状态!

    下次再拉取的时候,这几条就是已读的了... 然后新增的未读 继续插入数据!

    如果想做知乎那种(不刷新页面,但是一旦有消息,页面消息那有提醒,这种一般都是 websocket) 这种处理起来麻烦,还占带宽!
    nimrc
        11
    nimrc  
       2019-05-13 18:08:12 +08:00
    @Vfei2017 百度为您找到相关结果约 2,960,000 个
    Vfei2017
        12
    Vfei2017  
    OP
       2019-05-13 18:09:55 +08:00
    @ylsc633 微信小程序里想做一个类似的功能用 websocket 是不是不太好
    passerbytiny
        13
    passerbytiny  
       2019-05-13 18:11:38 +08:00
    楼上几位,除了 3 楼,全部在一本正经的胡说八道。不上插件,v2ex 有新消息通知吗?

    @Vfei2017 #4 V2 没有新消息通知,只有未读消息个数。未读消息个数是静态信息。别人新增回复如果 @你了,你会多一个消息,同时未读消息个数+1。你打开 /notifications 的时候,未读消息个数 重置为 0。其他论坛的新消息通知,一般就多了一个操作:js 异步死循环轮询服务器查询未读消息个数。v2explus 插件应该也是轮询服务器获取未读消息个数。
    Vfei2017
        14
    Vfei2017  
    OP
       2019-05-13 18:18:39 +08:00
    @passerbytiny v2 确实是这样,刷新当前页面会有新的回复,但是只要不点击右边的‘ 1 条未读消息提醒’,就算刷出来新的回复,这个提醒也不会消失,只有点了之后提醒才消失
    ylsc633
        15
    ylsc633  
       2019-05-13 18:35:14 +08:00
    @Vfei2017 我感觉小程序用 websocket 不太好, 另外,我也不太清楚好不好实现!

    我写过一个论坛, 消息通知是跟 v2 差不多的, 主动拉取的!

    然后 同时也为了这个论坛,写了个小程序, 那时候小程序功能比较简单.. 同时 新消息功能跟 页面版也是一样的,按需拉取!

    现在 没有关注过小程序了.. 不过我玩的几个小程序 有专门的微信消息通知...

    比如我关注了一个小程序,然后小程序里有新消息, 我微信的 消息通知(Service Messages) 会收到推送! 具体实现方式目前未了解.. 你有兴趣可以了解下
    Vfei2017
        16
    Vfei2017  
    OP
       2019-05-13 18:55:25 +08:00
    @ylsc633 像百度贴吧微信小程序,这种应该还是轮询的方式吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2102 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:15 · PVG 00:15 · LAX 08:15 · JFK 11:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.