python - 用Socket.io实现当用户关闭页面时更新其他用户的用户列表?
巴扎黑
巴扎黑 2017-04-17 16:44:24
0
1
694

我在服务端采用了一个列表userslist来保存用户列表,usersnum来记录在线用户数目。
连接的用户的username保存在html中。

服务端

#列表更新:用户退出
@socketio.on('disconnect', namespace='/chat')
def disconnect(message):
    if(message['name'] in userslist):
        global usersnum
        usersnum=usersnum-1
        userslist.remove(message['name'])
        emit('connected',{'name':message['name']},broadcast=True)#退出信息
        theList=json.dumps(userslist)
        emit('listupdate',theList,broadcast=True)#列表更新

浏览器端

/*发送退出消息*/
socket.on('disconnect',function(msg){
    socket.emit('connecting', { name: $('#usernameID').html() });
})

但是无法成功,我猜想是因为关闭页面时触发的disconnect无法获取到html中的内容。
请问如何解决这个用户列表更新的问题?

巴扎黑
巴扎黑

reply all(1)
伊谢尔伦

Under normal circumstances, close the browser and you should be able to detect the disconnect event. If you cannot detect the disconnect event, it may be that the other party's network suddenly dropped offline.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template