Foros del Web » Programando para Internet » PHP »

Pasar objeto entre javascript y PHP

Estas en el tema de Pasar objeto entre javascript y PHP en el foro de PHP en Foros del Web. Estoy programando una pagina PHP que tiene unos botones para mandar comandos a traves de un puerto serie. He conseguido mandar los comandos y recibir ...
  #1 (permalink)  
Antiguo 17/07/2014, 03:55
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 9 años, 9 meses
Puntos: 0
Pasar objeto entre javascript y PHP

Estoy programando una pagina PHP que tiene unos botones para mandar comandos a traves de un puerto serie. He conseguido mandar los comandos y recibir las respuestas generadas.

Ahora necesito, ademas, poder leer cada cierto tiempo el buffer del puerto serie. El problema esta en que cada vez que lanzo el codigo PHP tengo que volver a abrir el puerto (o sino no puedo usarlo) y eso me limpia su buffer.

Necesito saber como puedo hacer que javascript me lance, a traves de AJAX, un codigo PHP al que le pueda pasar un objeto de una clase PHP que me controle el puerto serie. De esta manera quiero conseguir no tener que abrir el puerto otra vez para cada solicitud de lectura o escritura que haga desde la pagina web.

He intentado hacer un objeto estatico, pero no parece funcionar. La verdad es que soy nuevo en la programacion web y no se que mas hacer. ¿Tal vez deberia usar algun otro lenguaje de programacion que soporte mi microcontrolador ARM7?

¿Alguien puede ayudarme o darme alguna pista de por donde continuar, por favor?
Muchas gracias
  #2 (permalink)  
Antiguo 17/07/2014, 05:16
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Pasar objeto entre javascript y PHP

Para lo que quieres hacer, no te sirve "enviar un objeto entre javascript y php", ya que en realidad, lo que estás diciendo es que el recurso abierto por una petición php (un descriptor de fichero), enviarlo al cliente, y que éste lo vuelva a pasar al servidor vía ajax.

Los recursos abiertos por PHP (y, en general, por cualquier proceso), no son más que apuntadores a estructuras creadas por el sistema operativo.Esos apuntadores suelen ser simplemente enteros.Cuando ese entero lo envías a otro proceso, a un cliente web, a donde sea, no estás enviando "un dispositivo abierto y listo para usar".Lo que envias es un entero (o un Resource id, en PHP).

A la vez, cada ejecución de PHP es un proceso independiente, y cuando termina su ejecución, todos los recursos abiertos durante la ejecución, son liberados.Es decir, tu puerto se cierra tras la ejecución de la petición, sea esta Ajax, o como sea.

Por lo tanto, necesitas un proceso que no termine (un demonio) que sea el que abra el puerto serie, y, a la vez, abra un canal de comunicacion (socket tcp, socket unix) por donde reciba comandos.
Cada peticion web, se conecta a ese demonio, envia un comando, espera respuesta, y genera el HTML con la respuesta.Pero no abre directamente el puerto.El puerto lo tiene abierto siempre el demonio.
  #3 (permalink)  
Antiguo 17/07/2014, 07:43
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Pasar objeto entre javascript y PHP

Muchas gracias por la respuesta. La verdad es que despues de escribir el mensaje me di cuenta de lo que me has respondido. Tu respuesta me confirma que es imposible hacerlo como pretendia. Lo de usar sockets ni me lo habia planteado porque no conozco la tecnología. Una vez intenté hacer algo con ellos en C# y lo dejé por imposible debido a lo complejo del sistema. ¿Tienes algun ejemplo sencillo con un demon en c++?
  #4 (permalink)  
Antiguo 17/07/2014, 07:49
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Pasar objeto entre javascript y PHP

Para lo que quieres hacer, el demonio lo puedes hacer en php mismo.
Mira la documentacion de stream_socket_server (para el demonio) y stream_socket_client (para las peticiones web).Ambas tienen ejemplos incluidos.

Etiquetas: ajax, javascript, puerto, serie
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 22:40.