Tema: php e hilos
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/11/2006, 17:50
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por sergiarias Ver Mensaje
Hola

Tengo un problema, tengo que hacer una pagina web en la cual tengo que tener un socket abierto por si me mandan informacion para actualizar la pagina. Pero a su vez, esa pagina es interactiva, es decir, que yo puedo seleccionar objetos, pestañas, mostrar menus contextuales.

He hecho una pagina que se conecta y hace de servidor, pero claro, tengo que hacer un bucle para esperar datos, y esto hace que no se vea nada del resto de la pagina.

¿Hay alguna manera de hacer esto? normalmente se haría con eventos, o con hilos.

Gracias
Realmente PHP no maneja ni eventos ni hilos.

PHP ejecutado bajo servidor HTTP .. el objetivo principal es que tu le pidas a ejecutar tu script .php .. tu servidor HTTP se la pasa al interprete de PHP .. este ejecuta su parte y entrega su salida otra vez al servidor HTTP para que este la haga llegar por el protocolo HTTP al cliente.

He de ahí que tu proceso en bucle "infinito" se quede tu "cliente" colgado a la espera de la página que supuestamente vas a recibir.

Realmente un "socket" de este estilo deberías progrmarlo como Applet Java e integrarlo en tu página HTML como de constumbre .. PHP lo usarás para otras cosas.

Por otro lado puedes usar técnicas como "AJAX" (tenemos un foro para tal fin) donde podrías eventualmente cada cierto tiempo ir a ejecutar tu script PHP .. pero esto ya no serviría para "estar a la espera" como un socket clásico.

Se me olvidaba .. Otra cosa que puedes hacer (no sé que tanto te servirá en tu caso particular) es lanzar una función a ejecutar aunque el cliente cierre su ventana abierta (conexión mejor dicho) con el servidor ..

register_shutdown_function()
http://www.php.net/register_shutdown_function

Por lo menos así puedes lanzar la ejecución de la función que registres de ese modo y continuar con la ejecución de tu script.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.