في خادم Media Flash ، كيفية تحديد اتصال العميل بسبب قطع الطاقة؟

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

سؤال

أي شخص الرجاء المساعدة ، كيف يمكنني العثور على خادم وسائط الفلاش الذي تم فصل العميل (بسبب قطع الطاقة ليس يدويًا). رمز 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 لا يعمل معالج الأحداث عندما ينفصل المستخدم بسبب قطع الطاقة أو عن طريق تعطيل الاتصال الصافي. لكنني وجدت طريقة أخرى لتحديدها. below هو رمز قبول المسيرة العميل ، وبعد كل 15 ثانية ، أتحقق مما إذا كان العميل لا يزال نشطًا (بعد فقدان الاتصال الصافي) ثم افصله ونحصل على "netconnection.connect .

    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