请问大佬,根据前端条件对 websocket 推送的数据进行筛选和分页怎么做啊??实在没有头绪。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fragrans23
V2EX    问与答

请问大佬,根据前端条件对 websocket 推送的数据进行筛选和分页怎么做啊??实在没有头绪。

  •  
  •   fragrans23 2021-08-21 11:24:52 +08:00 1943 次点击
    这是一个创建于 1558 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问一下各位大佬,最近公司有这样一个需求,公司要通过请求第三方接口将数据放入 redis 队列中,订阅队列后,通过 websocket 推送给前端。现在我有一个问题,其中有一个需求是这样的,要根据分组名称多选进行查看。我写的代码是每 5 秒请求第三方接口放入 redis 队列,有消息通过 websocket 进行推送。如何根据条件多选呢?还有要进行分页。websocket 可以通讯,但拿数据和推数据不是一起的,想了很久了?有大佬能提供一个解决方案吗(我将我写的这部分代码,单独拿出来写了个 demo,地址: https://gitee.com/feng2333/websocket-demo.git )哭!!!

    8 条回复    2021-08-22 19:27:49 +08:00
    gleams
        1
    gleams  
       2021-08-21 12:41:06 +08:00 via Android   1
    根据分组不同,将数据放到不同的队列里,前端请求的时候根据请求条件,取不同队列的数据,这样,分页就好做了
    fragrans23
        2
    fragrans23  
    OP
       2021-08-21 14:58:19 +08:00
    @gleams 分组的数量可能很大,几十上百个,会不会对 redis 有影响?而且我只有请求接口时才得到分组的数据,要怎么写呢?。。。以前没用过 redis 做队列的用法,对这些不是很熟悉
    zhady009
        3
    zhady009  
       2021-08-21 16:45:16 +08:00
    @fragrans23 用可以 redisson 解决你不会用队列的问题 做完之后可以回头看看别人怎么玩的
    meeop
        4
    meeop  
       2021-08-21 16:49:22 +08:00
    这个需求看起来就是想根据一定条件领取数据,数据别放 mysql 根据一定条件查不就好了
    另外如果分组是有限的,就能实现预留比如 1w 个队列,然后根据条件去领取
    ipwx
        5
    ipwx  
       2021-08-21 18:24:11 +08:00   1
    你在自己的后端做这件事啊。。。

    后端有个统一的 pub-sub,需要什么 topic 向 redis 增量订阅,不需要的取消。

    前端 websocket 去向你自己的后端 pub-sub 订阅,这里就能直接规定每个 subscriber 需要订阅哪些 topic 了。

    这样你的后端项目只要加入口机横向扩展,就能迅速扩大规模。毕竟你的 redis 只要抗住每个入口机一个订阅者就行。
    ipwx
        6
    ipwx &bsp;
       2021-08-21 18:24:58 +08:00
    后端实现 pub-sub 多简单的事情。python asyncio 可以闭着眼睛给你写一个,我写过。

    其他 node.js ,Java vert.x 我觉得也不是难事。
    fragrans23
        7
    fragrans23  
    OP
       2021-08-22 16:47:54 +08:00
    @ipwx 感谢回复,redis 增量订阅哪里有 java 的例子吗,好像没怎么看到
    ipwx
        8
    ipwx  
       2021-08-22 19:27:49 +08:00   1
    @fragrans23 我没搞过 redis 消息队列,我搞过 kafka 。kafka => python asyncio 内部 pub-sub => websocket
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5244 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 01:22 PVG 09:22 LAX 17:22 JFK 20:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86