Foros del Web » Programando para Internet » PHP »

realizar PHP + Mysql real time.

Estas en el tema de realizar PHP + Mysql real time. en el foro de PHP en Foros del Web. Holas como va... bueno estoy en desarrollo de un Framework MVC y quiero ver la posibilidad de poder hacer algo en tiempo real... Lo básico ...
  #1 (permalink)  
Antiguo 12/03/2012, 21:59
 
Fecha de Ingreso: octubre-2008
Mensajes: 24
Antigüedad: 15 años, 6 meses
Puntos: 1
realizar PHP + Mysql real time.

Holas como va... bueno estoy en desarrollo de un Framework MVC y quiero ver la posibilidad de poder hacer algo en tiempo real...

Lo básico seria en 1 sección normal:
Visualización de una Grilla desde DB
Formulario para dar un Alta,baja, modificación y consulta.
Sistema de paginado.

La idea es que si otro cliente realizo una modificación en uno de los registros que yo estoy visualizando que automáticamente me lo auto cargue por as decirlo a ello lo llamamos Real-Time.

Esto como lo podría lograr con PHP y MYSQL... la idea es que detecte en la db la modificación del registro o algo parecido y en php jquery o lo que sea que se utilice captar la modificación y luego actualizar en cada cliente que visualiza la misma sección.

yo pensaba usar algo como NodeJS o algo asi donde se requiera un servidor a parte y utilizando JS para la realizacion de una convinacion de PHP MYSQL y asi obtenemos un realtime.

Pero ustedes que recomendarían hacer?? WEBSOCKET pero PHP ? o HTML5 Websocket? Funciona?

Que otro framework como nodeJS podría existir y es compatible con PHP para realizar esto ??

ejemplo en el update de FACEBOOk al escribir algo en tu MURO en el inicio de Noticias de tu Cuenta se vera reflejado en 1nos segundos después de que tu escribieras algo y apretaras ENVIAR... Luego a cada de tus amigos que están conectado se le visualizara lo que tu allas escrito...

yo lo que no quiero es Manejar esto con jquery de hacer un TimeLapse creo que se llama o algo asi que hace que determines un tiempo y se auto ejecute una función... o el uso de PHP en el caso de recargar la pagina... ya que lo que quiero lograr es la modificación y que automáticamente todas las personas visualizando misma sección puedan ver en el momento el CAMBIO.

Gracias
  #2 (permalink)  
Antiguo 12/03/2012, 22:59
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: realizar PHP + Mysql real time.

lo que mencionas tienes que hacerlo con javascript usando AJAX, con el metodo setinterval verificando cada cierto tiempo si hubo un cambio o no, pero te va a traer dolores de cabeza lo que piensas hacer ya que al ser dinamico todo, tu framework debe generar todo ese codigo, y tu mismo debes hacer de manera inteligente a donde va a realizar esa peticion XHR ... ejem

Código PHP:
Ver original
  1. $obj = $this->load->gridview();
  2. /*demas metodos como un setDataSource, para inicializar la grilla entre otros, como mostrar botones de actualizar, eliminar, insertar etc */
  3. $obj->setXHRAction('AjaxController.php?action=alumnos');
  4. /*Ahi mandamos a nuestro controllador ajax la accion alumno, por lo tanto debes enviar mas parametros en es apeticion .. ejem un json
  5. {action: 'aluno',tipo: 'nuevo'}
  6.  */
  7. echo $obj->render(); /*Imprime la grilla*/

Algo asi, vas a tener que hacer muchas pruebas con tu libreria que implementes en tu framework

Saludos
  #3 (permalink)  
Antiguo 13/03/2012, 19:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 24
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: realizar PHP + Mysql real time.

SI igual lo del framework descartalo porque mi framework esta echo de 1 forma mas dinámica todavía... Al nivel de que hasta genera los códigos jquery con un simple Linea... me refiero a generar una ventana Windows con un formulario dentro que ademas solo eso pasandole el nombre de la tabla de la MYSQL donde ahi obtiene los campos y los hace Formulario... bueno muchas otras cosas mas lo cual eso no es problema el tema es que quiero ver cual es la mejor manera de hacer un REAL TIME.

Yo estoy actualmente utilizando la funcion de jquery setInterval dando un intervalo de 1000 seg.

Ahora pensado eso obtiene los datos de la DB MYSQL cada 10 minutos lo cual si tengo ejemplo 20 personas que estan logeados en la misma seccion o otra sección donde se ejecuta la función setInterval donde va a la DB mysql obteniendo los datos y actualizando cada 10 minutos yo creo que sobrecargaría el servidor de MYSQL osea seria muy inadecuado hacer algo asi... Facebook lo hace pero hablamos de 1 servidor Muy grande el que maneje facebook lo cual yo no dispongo...

AHora por ese motivo pense en ver otra alternativa algo como NodeJS o algo asi donde se crea un servidor aparte del PHP para hacer un servidor de WebSocket que hace enlaces entre cliente y al hacer un cambio se le aplica a todos os clientes conectados a la vez...

Lo cual teniendo esto lo que haría es si uno de los clientes conectados o logeados visitando 1 sección y haciendo un cambio por ejemplo modificando un registro... lo que se hace es enviar esa información al servidor WebSocket y de ahí la petición a MYSQL para actualizar los datos en tiempo real a los otros clientes simplemente Seria 1 sola ves y luego El servdor Socket se encargaría de enviar los dato que obtubo a todo sus clientes...

Se entiende a lo que voy?

En el caso de setInterval tenes 40 Clientes conectado a tu sistema se actualiza 40 veces cada 10 segundo ocea qeu seria peticiones 40 veces a MYSQL cad 10 segundo... ocea hablamos de 40 pero pueden ser Miles seria mucho mas grande el problema...

El el caso de ejemplo NODEJS osea haciendo un servidor WebSocket seria un cambio el sevidor hace 1 sola petición por mas que alla 1000000 clientes conectados solamente lo hace 1 sola ve porque quien sea que realiza el cambio va al servidor lo toma y de ahi hace la petición de los datos nuevo y los envía a cada cliente...

de esta manera ahorraríamos mucho consumo creo yo..

Por eso quiero ver la posibilidad de PHP como podría hacer algo en tiempo real..

Tmb estuve viendo algo sobre HTML5 WebSocket pero no se cual es mas compatible con PHP Jquery y MYSQL...

Los únicos 2 que vi fue NodeJS y HTML5 Websocket...

También en 1 pasado tuve la idea de hacer el sistema en Python para realizar esto en tiempo real... pero bueno lo empece a hacer en PHP y a esta altura no esta bueno cambiarlo.

Que opinan'?

Gracias
  #4 (permalink)  
Antiguo 15/03/2012, 00:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 24
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: realizar PHP + Mysql real time.

Nadie ? ...........
  #5 (permalink)  
Antiguo 09/05/2014, 09:56
 
Fecha de Ingreso: mayo-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
Respuesta: realizar PHP + Mysql real time.

Ya paso bastante tiempo de tu consulta, estoy queriendo hacer algo similar a lo que habías planteado, encontraste una solución? Como lo hiciste?
  #6 (permalink)  
Antiguo 09/05/2014, 14:08
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: realizar PHP + Mysql real time.

La idea es usar websockets y php, aca hay un ejemplo de como realizar un chat, dominando ese codigo, se puede adptar a cualquier otra necesidad, en esta pagina hay muchas demos de cosas interesantes hechas con websockets
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 09/05/2014, 15:06
Avatar de Thejuanjo  
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 2
Respuesta: realizar PHP + Mysql real time.

Hola p4rp4d30;

Quiero que me respondas a estas preguntas, y así podre ponerte un código que se me viene a la mente.

¿Cuántos usuarios pueden ver esos registros, es decir si se tratan de mensajes directos(2 o más participantes), comentarios en foros...?

¿Pueden verlo los visitantes sin registrarse?

¿Pueden verlo todos?

Si ninguna de las 3 preguntas está relacionado con lo que buscas, dime de que tipo de registros se trata(AUNQUE coincida con alguna de las 3 preguntas, hazlo saber para mejor ayuda).

Etiquetas: formulario, html, mysql, real, registro
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 09:28.