search

Home  >  Q&A  >  body text

python - 用Socket.io实现当用户关闭页面时更新其他用户的用户列表?

我在服务端采用了一个列表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中的内容。
请问如何解决这个用户列表更新的问题?

巴扎黑巴扎黑2810 days ago701

reply all(1)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:46:24

    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.

    reply
    0
  • Cancelreply