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