Bis jetzt weiß ich nicht den Grund warum Ondisconnect Der Ereignishandler funktioniert nicht, wenn der Benutzer aufgrund von Stromausfall oder durch Deaktivieren der Nettoverbindung trennen. Aber ich fand einen anderen Weg, um es zu identifizieren. Below ist der Code für die Akzeptanz der Client-Konektion. Nach jeder 15 Sekunden prüfe ich, ob der Client noch aktiv ist (nachdem ich die Nettoverbindung verliert habe), dann trennen Sie ihn und wir erhalten "netconnection.connect .Cloded "auf der Clientseite.
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.");
}