如何向房间内命名空间内的特定客户端发送消息?

How do I emit to a specific client within a namespace, within a room?

我有一个使用 flask-socketio 的 flask 服务器,Angular 前端作为仪表板,很少有客户端。仪表板(也是客户端)连接到不同的命名空间(“/dashboard”)。同样,客户端也连接到不同的命名空间(“/clients”)并分配给各自的房间(国家/地区)。

现在我想向客户端命名空间的房间内的特定用户(使用 request.sid)发出事件。

P.S: 这是我第一次在这里提问所以请原谅我的方法:D

因此 emit() 函数有一个名为 room 的参数,您实际上可以将 request.sid 传递给

emit('some event', some_data, room=request.sid)

根据您的应用程序的复杂性,创建您自己的方法来映射用户所在的房间以及哪些插座属于哪些已连接用户可能是理想的选择。在我的情况下,房间中的用户会收到不同的消息,我需要这样做。

这里只是举个例子,展示概念


rooms = {
    room1: {
           user1 : {
                   username: "rickybobby",
                   sid: 12ed0u9j1d9a08hy409jdsdf
           }
    },
    roomN : {...userN}
}