Estadísticas de tus aplicaciones en flashcom
¿como obtener estadísticas de tus aplicaciones ? existen varias formas, una es usando flash remoting con coldfusion, otra más sencilla es con un Shared Object persistente. Veámos este caso
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, total_connects:0, total_disconnects: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 = application.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("Total clients connected : " + stats.total_connects);
trace("Total clients disconnected : " + stats.total_disconnects);
//Paso los datos al so
my_so.setProperty("appStats", stats);
//Como los datos son importantes, forzamos al grabado a disco del SO
//persistente
my_so.flush();
//Le pido que me muestre los datos por pantalla ( comprobación de que todo
//salió bien)
//obtengo los datos del so
var the_stats=my_so.getProperty("appStats");
//los saco por pantalla
trace("Comprobación de los datos");
for(var prop in the_stats){
trace(prop+" : "+the_stats[prop]);
}
Esto tiene un problema, y es que application.getStats siempe devuelve el total de las estadísticas desde que se inció el sitio y si por algún casual debemos recargar el sitio ( reload ) este histórico se vuelve a cero.
Para solucionar esto, usamos client.getStats, pero eso será en otro mensaje que tengo que probarlo :D