« Estadísticas de tus aplicaciones en flashcom | Inicio | Bugs en flashcom »

estadísticas en flashcom y 2

Bueno, pues ahora vemos como hacer lo mismo del post anterior pero con client.getStats y sumando los valores de cada sesión

application.onAppStart=function(){ //obtener enlace al SO my_so. Creamos el SO de forma persistente //Lo creamos en application.onAppStart , así sólo se ejecutará cuando se //inicie por primera vez la aplicación my_so=SharedObject.get("el_so",true); //Creamos un objeto con los datos a almacenar. Cuando se inicia por primera //vez la aplicación no ha habido transferencia por lo que iniciamos los datos a //cero mis_stats={bytes_in:0, bytes_out:0, msg_in:0, msg_out:0, msg_dropped:0, ping_rtt:0}; //A diferencia de lado cliente, en lado servidor a los SO accedemos con //getProperty y setProperty my_so.setProperty("appStats", mis_stats); }; application.onConnect=function(newClient){ application.acceptConnection(newClient); trace("nuevo usuario conectado"); }; application.onDisconnect=function(oldClient){ trace("Usuario desconectado"); stats = oldClient.getStats(); trace("Total bytes received : " + stats.bytes_in); trace("Total bytes sent : " + stats.bytes_out); trace("RTMP messages received : " + stats.msg_in); trace("RTMP messages sent: " + stats.msg_out); trace("RTMP messages dropped : " + stats.msg_dropped); trace("Ping roundtrip time: " + stats.ping_rtt); //Voy a añadir estos datos a los que ya tenía para obtener estadísticas totales //obtengo los datos del so var the_stats=my_so.getProperty("appStats"); //Hago la suma for (var prop in the_stats){ the_stats[prop]=the_stats[prop]+stats[prop]; } //Grabo los datos en el SO my_so.setProperty("appStats", the_stats); //Como los datos son importantes, forzamos al grabado a disco del SO //persistente my_so.flush(); //Realizamos una comprobación sacando los datos por pantalla //Obtengo los datos del SO var comprobacion=my_so.getProperty("appStats"); //los saco por pantalla trace("Comprobación de los datos"); for(var prop in comprobacion){ trace(prop+" : "+comprobacion[prop]); } };

Como ves, tanto los códigos de este ejemplo como los del anterior los monitorizas para comprobar su funcionamiento desde la communication app inspector.

En el lado cliente sólo necesitas establecer la conexión y si quieres otro botón para cerrarla y ver lo que ocurre, pues esto se ejecuta cuando se desconecta el cliente

nc=new NetConnection(); nc.onStatus=function(info){ trace("level: "+info.level+" code: "+info.code); } a.onRelease=function(){ nc.connect("rtmp:/stats"); }; b.onRelease=function(){ nc.close(); }