Foros del Web » Programando para Internet » PHP »

mensajes en el momento tipo facebook notificacione

Estas en el tema de mensajes en el momento tipo facebook notificacione en el foro de PHP en Foros del Web. hola una pregunta, que es lo que tiene facebook con ese de las notificacion , que no refresca, nada, por ejemplo estoy en el otro ...
  #1 (permalink)  
Antiguo 13/04/2013, 21:42
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 1 mes
Puntos: 3
mensajes en el momento tipo facebook notificacione

hola una pregunta, que es lo que tiene facebook con ese de las notificacion , que no refresca, nada,

por ejemplo estoy en el otro lado del mundo , le mando algo a una amigo, y este la recibe en el momento, sin refrescar la pagina, es como un chat, pero no es un chat..

uno podria pensar que que tiene un jquery ajax que actualiza constamente, en tiempo real....no es como un refresh... de html...

pero no se ... lo de jquery podria ser....


lo malo es que nunca hice un chat , como para por lo menos tener una idea..
.....................

escuche hablar algo de sockets tiene algo que ver con el tema del post?

...................
nodejs, habia leido y me parece que tiene que ver con esto...

Última edición por aldo_rengo; 13/04/2013 a las 21:55
  #2 (permalink)  
Antiguo 13/04/2013, 22:40
 
Fecha de Ingreso: junio-2012
Mensajes: 56
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: mensajes en el momento tipo facebook notificacione

Usando AJAX lo haces
La cosa es que hasta aca te puedo ayudar porque soy nuevo en AJAX apenas lo estoy aprendiendo a manipular.
Pero estoy seguro de que vas a encontrar un buen tutorial para aprender a utilizarlo.
No es gran cosa cuando lo entiendes.
Suerte.
  #3 (permalink)  
Antiguo 13/04/2013, 23:46
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 4 meses
Puntos: 168
Respuesta: mensajes en el momento tipo facebook notificacione

Podrías usar ajax para estar constantemente consultando el servidor a ver si han habido cambios en la base de datos, nuevas notificaciones, y si es así, notificar los usuarios.
  #4 (permalink)  
Antiguo 14/04/2013, 00:36
 
Fecha de Ingreso: abril-2010
Ubicación: Saltillo Mexico
Mensajes: 83
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: mensajes en el momento tipo facebook notificacione

Yo hice algo así con Javascript + PHP + Mysql. (con jQuery por comodidad)
Pero no me acuerdo muy bien y no se donde quedó el código...
Lo que hacía era añadir un campo a los mensajes para marcarlo como leído, y otro para marcar como notificación leída.

Entonces cuando llegaba un mensaje, siempre se insertaba como no leído (0) y la notificación en 0, cuando la notificación era 1, entonces ya había visto la notificación, y cuando el status del mensaje era 1, se marcaba como leído

Código HTML:
Ver original
  1. <div id="notif" onclick="setRead()"></div>
  2. <div style="display:none"></div>

Código Javascript:
Ver original
  1. //Ejecutar la funcion cada 5 segundos
  2. setInterval("checkMsj()",5000);
  3.  
  4. function checkMsj(){
  5.     $.ajax({
  6.             async:false,
  7.             url:"php/checkMsj.php",
  8.             success:function(resultado){ $("#div").html(resultado); }
  9.     });
  10. }
  11.  
  12. //Marcar la notificacion como leída
  13. function setRead(){
  14.     $.ajax({
  15.             async:false,
  16.             url:"php/setReaded.php",
  17.             success:function(){ $("#div").html(""); }
  18.     });
  19.  
  20. }


php/checkMsj.php :
Código PHP:
Ver original
  1. <?php
  2.  
  3. $user = $_SESSION['user'];
  4.  
  5. $cnx = new mysqli("host","user","pass","db");
  6.  
  7. $c = $cnx->query("SELECT * FROM mensajes WHERE statusNotif = '0' AND destinatario = '".$user."'");
  8.  
  9. $cantidadMsjNuevos = $c->num_rows;
  10.  
  11. if($cantidadMsjNuevos != 0){
  12.      ?>
  13.      <sctipt type="text/javascript">
  14.      $("#notif").html("Tienes <?php echo $cantidadMsjNuevos; ?> mensajes nuevos");
  15.      </script>
  16.     <?php
  17. }
  18.  
  19. ?>


php/setReaded.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $user = $_SESSION['user'];
  4.  
  5. $cnx = new mysqli("host","user","pass","db");
  6.  
  7. $c = $cnx->query("UPDATE mensajes SET statusNotif = '1' WHERE destinatario = '".$user."' AND statusNotif = '0' ");
  8. ?>

Y así para mostrar el mensaje y marcarlo como leído, en diferentes scripts.
  #5 (permalink)  
Antiguo 14/04/2013, 11:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: mensajes en el momento tipo facebook notificacione

Comet
Websockets
LongPolling
node.js
Son algunas de las tecnologías que te permiten mantener una conexión abierta con el server para recibir notificaciones en tiempo real.

El problema es a veces compatibilidad entre navegadores y que algunas de esas tecnologías requieren ciertos componentes instalados en el servidor. Como la mayoría de las webs que administro están en servidores compartidos, me las voy arreglando con esto

http://emprear.com/polling/

No es un chat ni nada por el estilo, para la demo seteé el envío de peticiones cada 5 segundos para que sea más fácil de comprobar, pero lo ideal son tiempos de entre 45 y 60 segundos,
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: facebook, html, mensajes, momento, tipo
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 08:17.