Foros del Web » Programando para Internet » Javascript »

Lista actualizada de viewers en un chat

Estas en el tema de Lista actualizada de viewers en un chat en el foro de Javascript en Foros del Web. Hola, Estoy intentando encontrar un método para actualizar los usuarios que están en mi chat. -Cuando alguien entra en el chat --> se añade el ...
  #1 (permalink)  
Antiguo 03/06/2014, 01:11
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 13 años, 6 meses
Puntos: 1
Lista actualizada de viewers en un chat

Hola,

Estoy intentando encontrar un método para actualizar los usuarios que están en mi chat.

-Cuando alguien entra en el chat --> se añade el usuario en la base de datos, no problem
-Presentar una lista de usuarios ---> hago una lista de viewer y la actualizo con Ajax, no problem
-Cuando un usuario sale del chat o de la pagina ---> he intentado detectarlo con el evento "beforeunload", pero funciona irregularmente dependiendo del navegador.

¿alquien sabe como detectar de forma fiable los usuarios que salen de tu página o de un chat?

  #2 (permalink)  
Antiguo 03/06/2014, 13:42
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Lista actualizada de viewers en un chat

Si es por ajax, la mejor forma es la que indicas, con beforeunload, combinando además una bandera de tiempo, para que sólo tomes como conectados aquellos usuarios que tengan menos de x segundos de actividad.

Claro que si el chat es con websockets, es más simple detectar esto.
  #3 (permalink)  
Antiguo 04/06/2014, 01:05
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Lista actualizada de viewers en un chat

Gracias por la respuesta!. Parece que voy por el buen camino... ¿Puedes echar un vistazo al evento "beforeunload" de este código?. Ajax actualiza la base de datos y, por alguna razón funciona en Mozilla, pero no en Chromium:

<script type="text/javascript">
$(document).ready(function() {
$(window).one('beforeunload',function(event) {
event.preventDefault();

$.ajax({
url: 'out.php',
type: 'GET',
async: true,
data: 'roomx=mainroom&user=angel',
etc....
  #4 (permalink)  
Antiguo 04/06/2014, 14:58
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Lista actualizada de viewers en un chat

Yo soy más de trabajar en js "puro" y muy poco en frameworks como jquery, y lo que uso con buenos resultados normalmente es

Código Javascript:
Ver original
  1. window.onbeforeunload=function(){
  2.     llamadaAjax();
  3. }
  #5 (permalink)  
Antiguo 05/06/2014, 02:46
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Lista actualizada de viewers en un chat

Gracias de nuevo ocp001a por la respuesta.

Ya he resuelto el problema. Simplemente cambiando async: false, parece que funciona (aunque aún lo estoy testeando).

Una última pregunta: ¿sabes como quitar el dichoso aviso que sale en Firefox al ejecutar "beforeunload": de "confirmar que quiere abandonarla..."?
... va a ser algo con window.close(), pero no se como se llama a esa ventana...

Etiquetas: chat, funcion, lista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.