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

flask-socketio 一个用户他有三个页面连接后端同一个接口获取即时数据,怎么避免每个页面都接收后端返回三个请求的信息啊?实现后端分别返回 A 页面的 A 请求数据、B 页面的 B 请求数据...

  •  
  •   panghua · 2020-03-06 18:39:53 +08:00 · 1422 次点击
    这是一个创建于 1730 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为前端的页面在连接上后端,socketio 就会在设置的时间推送信息回前端;而我不知道怎么避免三个页面同一个房间,后端返回数据给 A 页面,其余 B、C 页面也会接收到 A 页面数据的这个梗。如何实现 A 页面接收它所请求的数据,B、C 页面不会收到呢?有些头疼,根据官方文档学 Flask-socketio 不久,目前还没有多少业务情景的知识积累。望得到思路帮助(合掌!)

    4 条回复    2020-03-06 22:30:19 +08:00
    xiaoxinxiaobai
        1
    xiaoxinxiaobai  
       2020-03-06 18:56:27 +08:00 via Android
    看不太懂你这个问题,前端和后端建立了 ws 链接,和你哪个页面没有关系。。。。。。
    panghua
        2
    panghua  
    OP
       2020-03-06 20:42:24 +08:00
    @xiaoxinxiaobai 晚上好!前端打开三个即时展示的曲线图页面 用 socketio 连接上了我同一个接口,我这边 socketio.emit('事件名', data)) 返回数据的时候,三个页面都收到了返回的信息。我想实现指定返回某个页面数据,其余两个页面不会接收到
    superrichman
        3
    superrichman  
       2020-03-06 21:06:21 +08:00 via iPhone
    emit 加上 room 参数,指定 userid
    panghua
        4
    panghua  
    OP
       2020-03-06 22:30:19 +08:00
    恩,好的,多谢,我去尝试! 同时的,加上 room 参数,同一个用户打开两个不同页面,不同页面拿不同的页面标识 id 去请求后端相同事件名,后端把这不同的标识 id 放进 socketio.emit('事件名', data, room=标识 id)),就可实现两个页面处在两个房间里与后端通讯,彼此互不影响,可以这样想吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1367 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:37 · PVG 01:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.