до сих пор я не знаю причины, почему Ondisconnect Обработчик событий не работает, когда пользователь отключается из-за отключения питания или отключения сетевого соединения. Но я нашел другой способ идентифицировать его. Пока-это код для принятия клиентской контии, а затем через каждые 15 секунд я проверяю, если клиент все еще активен (после потери сетевого соединения), затем отключите его, и мы получаем »netConnection.Connect .Closed "на стороне клиента.
application.allowDebug = true;
application.onAppStart = function(){
application.users_so = SharedObject.get("SO");
}
application.onConnect = function(client,Obj){
client.name = Obj.name;
application.acceptConnection(client);
application.users_so.setProperty(client.name,Obj);
client.interval = setInterval(checkLive, 15000, client);
trace("one user is now connected.");
}
function checkLive(client){
var stats = client.getStats();
trace('Measured timeout: ' + stats['ping_rtt']);
if(stats){
if(stats['ping-rtt']>10){
trace('client '+ client.name +'is still connected.');
application.disconnect(client);
}
}
}
application.onDisconnect = function(client){
clearInterval(client.interval);
trace(" user lost connection.");
}