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();
}