将 socket.io Javascript 代码转换为 python-socketio

Convert socket.io Javascript code to python-socketio

我有一个 javascript 使用 socket.io。
我想将此 javascript 文件转换为 python:

io.on('connection',(socket)=>{
    
    let nsData = namespaces.map((ns)=>{
        return {
            img: ns.image,
            endpoint: ns.endpoint
        }
    })
    // console.log(nsData)
    socket.emit('nsList',nsData);
})

这是我在 python 中的内容:

@sio.event
def connect(socket_id, environ):
    # ???

在文档中,声明您只需要使用 return 语句或使用 .emit() 函数。 https://python-socketio.readthedocs.io/en/latest/server.html#emitting-events 正如文档所说,您只需要

sio.emit('nsList', nsData, room=socket_id)

这将发出内容为 nsData 的 nsList 事件。但是,我不知道 nsData 是什么。好像只是一个map语句,用map()函数就可以搞定。正如 GFG 所述,您只需要映射出命名空间。 https://www.geeksforgeeks.org/python-map-function/ 假设命名空间是一个列表,你可以做类似的事情:

def mapNsData(ns):
    return { 'img': ns.image, 'endpoint': ns.endpoint }

然后,使用地图功能:

nsData = list(map(mapNsData, namespaces))

多田!现在,您有一个列表要发送给客户!