В Flash Media Server, как идентифицировать клиент отключен из -за сокращения питания?

StackOverflow https://stackoverflow.com/questions/19836084

Вопрос

Любой, пожалуйста, помогите, как я могу найти на Flash Media Server, который отключил клиент (Из -за отключения мощности не вручную). Анкет мой код FMS следующий

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);
    trace("one user is now connected.");
}
application.onDisconnect = function(client){
    trace(" user lost connection.");
}

Если клиент вручную закройте приложение, тогда Ondisconnect Обработчик событий называется, но если из-за сокращения питания или клиента отключите сетевое соединение, оно не вызвано.

Пожалуйста, помогите мне в этом.

Это было полезно?

Решение

до сих пор я не знаю причины, почему 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.");
        }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top