我在服务端采用了一个列表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中的内容。
请问如何解决这个用户列表更新的问题?
伊谢尔伦2017-04-17 16:46:24
일반적인 상황에서 브라우저를 닫으면 연결 끊김 이벤트를 감지할 수 있어야 합니다. 연결 끊김 이벤트를 감지할 수 없다면 상대방의 네트워크가 갑자기 오프라인 상태가 된 것일 수 있습니다.