Comunidad de diseño web y desarrollo en internet online

Avisar a los usuarios, la desconexión de un usuario desde FMS

Citar            
MensajeEscrito el 29 Ago 2012 01:21 pm
Saludos ActionScripTianos();

Mi pregunta es: como puedo avisar a los usuarios, que un usuario se ha desconectado?

En lado cliente tengo un array con la lista de usuarios, deberia borrarse del array el usuario que: se haya desconectado, o se le haya cortado el internet, o desconectaron la red, o se apagó su maquina, etc.

como capturo este evento para avisarles a todos los usuarios conectados ?
uso FlashMediaServer, licencia developer :)

Por WWCC

113 de clabLevel



Genero:Masculino  

Diseñador y desarrollador multimedia

chrome
Citar            
MensajeEscrito el 29 Ago 2012 02:55 pm
Tienes un callback del objeto client, onDisconnect, lo tienes que handlear en el servidor y hacer un broadcast a todos los clientes. Usualmente tienes un listado o similar de donde lo borras y listo, no se si un mensaje avisando que alguienb se desconect{o no es un poco invasivo (depende de tu aplicación) A veces tarda en dispararse.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Ago 2012 08:24 pm
Ok ok ok thanks solisarg !

application.onDisconnect = function(client)
{
this.salas.setProperty("usuarioDesconectado",true);
this.disconnect(client);
}

ahora tengo problemas con identificar al usuario que se ha desconectado, creo que debería declarar un array en el onAppStart del ASC ?

Tendré que pensar mas en la lógica de mi aplicación.

Por WWCC

113 de clabLevel



Genero:Masculino  

Diseñador y desarrollador multimedia

chrome
Citar            
MensajeEscrito el 29 Ago 2012 08:38 pm
El FMS mantiene un array de Clients que puedes recorrer e ir pillando las propiedades (ip o username). Yo igual suelo mantener mis propios listados con alguna key para poder removerlo fácilmente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Ago 2012 09:37 pm
Y donde será que puedo ver la documentación del lenguaje ASC ?
para poder trabajar y declarar con variables, eventos, etc

Creo que con eso ya estaría sin problemas... u.u , en cuanto ala lógica cliente-servidor.

Por WWCC

113 de clabLevel



Genero:Masculino  

Diseñador y desarrollador multimedia

chrome
Citar            
MensajeEscrito el 30 Ago 2012 09:34 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Sep 2012 03:31 pm
Yo lo teng asi y funciona En el main.asc pones:

application.onDisconnect = function(client){
for (i = 0; i < application.clients.length; i++){
application.clients[i].call("Mostrar_Mensaje");
}

En actionscript:
private function Mostrar_Mensaje():void
{
// Código a poner
}

Por Xanatos34

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Sep 2012 01:41 pm
Gracias por las respuestas.

en el main.asc les aviso con:

application.broadcastMsg("clienteConectado", client.id, client.nick);
application.broadcastMsg("clienteDesconectado", client.id, client.nick);

Que diferencia habría con el código anterior de Xanatos34 ?

Otra cosa que me llamó la atención, es que si será correcto crear mensajes de broadCast, o los call() envés de usar los SharedObjects, es que toda mi aplicación(cliente y servidor)está basada en llamadas a funciones y arrays, sin usar ningún SharedObject.

Y es que lo estoy testeando en una red local, y no se si habrá algún error en el mundo real (Internet).

Por WWCC

113 de clabLevel



Genero:Masculino  

Diseñador y desarrollador multimedia

chrome
Citar            
MensajeEscrito el 13 Sep 2012 01:55 pm
La diferencia es en las entidades que se usan, y en cualquier caso siempre es un tema de performance. Agregando el tema que traes de Shared Objet, tenemos tres formas de hacer broadcast desde FMS hacia todos los clientes

Application.broadcastMsg : la instancia de la aplicación envía el mismo mensaje a todos los clientes conectados, es la mas performante para un broadcast simple

Client.call: para broadcast se debe recorrer todos los clientes en un loop e invocar el call para pasar el mensaje. Dado que es una operación bastante común, se incluyó el método broadcastMsg que no estaba en las primeras versiones de FMS. Client.call es un método que se debería usar para llamadas a clientes concretos, no para broadcast

SharedObject.send Envía un mensaje a todos los clientes conectados, incluído quien generó la llamada. Dado que el SO es un socket funciona como broadcastMsg, aunque es preferible usar broadcastMsg por un tema de concepto. Cambiar una propiedad del SO para generar un onSync si es una estrategia incorrecta para un broadcast, porque el SO enviará todas las propiedades (no solo las que cambian) y esto puede ser costoso en terminos de uso de ancho de banda, ergo ineficiente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.