Foros del Web » Programando para Internet » PHP »

utilizon sockets pero creo que el problema es con wampserver

Estas en el tema de utilizon sockets pero creo que el problema es con wampserver en el foro de PHP en Foros del Web. Buen dia compañeros del foro, quiero decirles que me gusta este foro por que sus respuestas siempre son acertadas. En este caso se que asi ...
  #1 (permalink)  
Antiguo 09/11/2018, 06:45
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
utilizon sockets pero creo que el problema es con wampserver

Buen dia compañeros del foro, quiero decirles que me gusta este foro por que sus respuestas siempre son acertadas.
En este caso se que asi sera.

estoy utilizando sockets en php
Código PHP:
Ver original
  1. $s=socket_create(AF_INET, SOCK_STREAM,SOL_TCP);
  2. socket_bind($s,'127.0.0.1',3165)or die(socket_strerror(socket_last_error()));

Me devuelve el error siguiente:
Sólo se permite un uso de cada dirección de socket (protocolo/dirección de red/puerto).

no creo que sea el codigo por que lo he modificado varias veces y el error que me devuelve es el mismo.

y si cambio el numero de puerto me devuelve el mismo error, pero cuando voy al cmd de windows y tecleo " netstat -an" miro y me doy cuenta que dice
127.0.0.1:3165 LISTENNING

Que sera?.
  #2 (permalink)  
Antiguo 09/11/2018, 09:34
 
Fecha de Ingreso: abril-2006
Mensajes: 150
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: utilizon sockets pero creo que el problema es con wampserver

si el script lo estas corriendo en un servidor como FASTCGI, recuerda que el script se queda ejecutando constantemente hasta que llegue a su fin, aunque cierres el navegador, recuerda una cosa existen puertos ya ocupados por otros programas , prueba con puertos arriba del "6000"
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #3 (permalink)  
Antiguo 09/11/2018, 15:33
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: utilizon sockets pero creo que el problema es con wampserver

Buen dia tuadmin, gracias por responder.
Lo que me quieres decir es que tengo que revisar si php lo estoy utilizando en modo FASTCGI?
Y si lo estoy utilizando en dicho modo ¿Debo usar un puerto mayor a 6000?
  #4 (permalink)  
Antiguo 09/11/2018, 17:48
 
Fecha de Ingreso: abril-2006
Mensajes: 150
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: utilizon sockets pero creo que el problema es con wampserver

Cita:
Iniciado por dacroma Ver Mensaje
Buen dia tuadmin, gracias por responder.
Lo que me quieres decir es que tengo que revisar si php lo estoy utilizando en modo FASTCGI?
Y si lo estoy utilizando en dicho modo ¿Debo usar un puerto mayor a 6000?
en modo FASTCGI el proceso no muere si lo paras desde el BROWSER , lo del puerto es solo un consejo(ya que es posible compartir un puerto y php no te daria error), ya que podrias tener en tu PC varios programas que esten usando dicho puerto y te esten dando falso positivo, por que segun el script php no deberia darte ningun problema
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #5 (permalink)  
Antiguo 09/11/2018, 18:18
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: utilizon sockets pero creo que el problema es con wampserver

tuadmin me inquietò tu mensaje, pero no he dado con saber si estoy utilizando FASTCGI o no, ¿Como puedo hacerlo?
  #6 (permalink)  
Antiguo 09/11/2018, 21:12
 
Fecha de Ingreso: abril-2006
Mensajes: 150
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: utilizon sockets pero creo que el problema es con wampserver

Cita:
Iniciado por dacroma Ver Mensaje
tuadmin me inquietò tu mensaje, pero no he dado con saber si estoy utilizando FASTCGI o no, ¿Como puedo hacerlo?
Crea un archivo como por ejemplo "info.php"
y dentro pon
Código PHP:
Ver original
  1. <?php phpinfo();
luego habre con el navegador y pones la Url del archivo, te arrojara informacion, ahi busca la palabra "fascgi" si encuentra lo estas usando, en todo caso, los sockets son utiles y todo pero ten en cuenta, que existen librerias en PHP, para todo, incluso para crear servidor WEBSOCKET; si quieres algo similar podrias usar el framework REACT PHP
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #7 (permalink)  
Antiguo 10/11/2018, 15:36
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: utilizon sockets pero creo que el problema es con wampserver

Buen dia tuadmin, despues de tu mensaje fuì a ver el php.info pero por ningun lado dice "fastcgi" lo unico acerca de cgi esta en el modulo "LOADED MODULES" y alli se encuentra lo siguiente:


core mod_win32 mpm_winnt http_core mod_so mod_actions mod_alias mod_asis mod_auth_basic mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dir mod_env mod_include mod_isapi mod_log_config mod_mime mod_negotiation mod_setenvif mod_php5


estuve leyendo el manual y dice que hay que poner lo siguiente en la linea de configuracion:
--enable-fpm y efectivamente lo hize pero no ocurrio nada. reinicie el servidor y nada y luego reinicie el computador y tompoco.
Podrias por favor indicarme como hacer para que me aparezca fastcgi por favor?.
  #8 (permalink)  
Antiguo 10/11/2018, 18:13
 
Fecha de Ingreso: abril-2006
Mensajes: 150
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: utilizon sockets pero creo que el problema es con wampserver

no te combiene hacer uso de FASTCGI
jeje , creo que lo tienes como MODULO de apache, no lei el titulo de WAMPSERVER, generalmente WAMPSERVER lo tiene preconfigurado como MODULO de apache, y dudo que lo hayas modificado, pero en fin, primero para los SOCKETS, tienes que habilitar la extension en php si estas en windows

extension=php_sockets.dll

si estas en Linux

extension=php_sockets.so

eso en el archivo php.ini , que estas usando, ahora como te comente usa otro puerto, ejecuta el script
y verifica nuevamente con el comando netstat -an luego para ver si el script esta funcionando bien, entra a tu browser, e ingresa el IP y puerto de tu script

http://127.0.0.1:3165

seguramente te dara algun error luego verifica con netstat -an y revisa si aun esta en LISTENING si no existe mal configuracion, deberia desaparecer o cambiar su estado de LISTENNING a otro, de lo contrario, es que algo ocurre. que no es normal
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #9 (permalink)  
Antiguo 11/11/2018, 10:03
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: utilizon sockets pero creo que el problema es con wampserver

tuadmin Buen dia, hize al pie de la letra las instrucciones que me acabas de indicar y el resultado es el siguiente:

1)ejecute primero que todo el comando 'netstat -an' para verificar que el puerto que puse en el script de php no estuviera ocupado, y efectivamente no estava ocupado.
2)ejecute el ecript de php con el puerto 9137 y la pagina carga infinitamente
3)luego ejecute nuevamente 'netstat -an' y efectivamente aparece 127.0.0.1:9137 LISTENING
4)ejecutè en una pestaña diferente http://locahost:9137 y deja de cargar la pagina del script php, pero entonces devuelve un error que dice
"NO SE PUEDE ACCEDEE A ESTE SITIO WEB"
"la pagina localhost ha rechazado la conexion"
"ERR_CONNECTION_REFUSED"
5)ejecuto nuevamente el comando 'netstat -an' y aparece:
DIERECCION LOCAL. DIRECCION REMOTA. ESTADO
127.0.0.1:9137. 127.0.0.1:1163. TIME_WAIT
127.0.0.1:9137. 127.0.0.1:1177. TIME_EAIT

6) vuelvo y ejecuto el comando 'netstat -an' y no hay indicios del puerto 9137

Entonces a la cinclucion que llego es que: la primera ves que se ejecuta el script no funciona, asi llame a localhost con el mismo puerto en otra pestaña, pero apartir de la segunda si funciona. ¿tuadmin, como hago para que fiuncione a la primera?.
De acuerdo a tus indicaciones me parece que el resultado es correcto, ¿ Pero pero entonces, como serciorarme si realmente esta funcionando?.

por que si ejecuto el script de HTML que me cree un boton y a ese boton le pongo un evento que me llame al script de JAVASCRITP como sigue:

Código Javascript:
Ver original
  1. document.getElementById("btnSend").addEventListener("click",e=>{
  2.     e.preventDefault();
  3.  
  4. const socket = new WebSocket('ws://localhost:9137/prueba.php');
  5.  
  6. // Abre la conexión
  7. socket.addEventListener('open', function (event) {
  8.     socket.send('Hello Server!');
  9. });
  10.  
  11. // Escucha por mensajes
  12. socket.addEventListener('message', function (event) {
  13.     alert('Message from server', event.data);
  14. });
  15.  
  16. });

med devuele el siguiente error

Código Javascript:
Ver original
  1. WebSocket connection to 'ws://localhost:9137/prueba.php/ws' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED         prueba.js:4//el error esta an la linea 4 del script  de JAVASCRIPT

prueba.php es el script del SOCKET
Código PHP:
Ver original
  1. $s=socket_create(AF_INET, SOCK_STREAM,SOL_TCP);
  2. socket_bind($s,'127.0.0.1',9137)or die(socket_strerror(socket_last_error()));

a que se debe dicho error?

Última edición por dacroma; 11/11/2018 a las 10:46
  #10 (permalink)  
Antiguo 11/11/2018, 18:03
 
Fecha de Ingreso: abril-2006
Mensajes: 150
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: utilizon sockets pero creo que el problema es con wampserver

jeej bueno, mira el problema es el sigueiente, este tema se volvio largo, no confudas
socket de php con WEBSOCKET, socket crea un puerto escucha, por TCP,UDP, en tu caso elegiste TCP, en cambio WEBSOCKET, es un protocolo que extiende el protocolo de TCP, la razon por que la primera conexion se queda como cargando, es por que en PHP en ningun momento le estas devolviendo una respuesta als ervidor, y en caso de que la devolvieras, en el lado cliente websocket no la va a comprender ya que no le estas indicando en el IDIOMA por asi decirlo que esta esperando

mira para que no te compliques con la comunicacion entre PHP sockets y WEBSOCKETS, usa una libreria

http://socketo.me/docs/websocket
o sino reactPHP

https://blog.wyrihaximus.net/2015/03/reactphp-sockets/

para que no te lies buscando donde descargar y como subirlo, puedes optar por INSTALARTE COMPOSER un gestor de librerias PHP

https://getcomposer.org/download/

descargate el WINDOWS installer si usas windows

de lo contrario, trabajar con SOCKETS directamente en php para hacer usar como servidor WEBSOCKETS, vas a complicarte mucho, tendras que manipular, banderillas, de estado, eventos, desconexiones, el mismo protocolo websocket, parseado de datos para el envio y recepcion.
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #11 (permalink)  
Antiguo 12/11/2018, 06:30
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: utilizon sockets pero creo que el problema es con wampserver

Yo que pense que ya casi habia resuelto el problema, pero bueno. De lo que me acabas de indicar no tengo idea, voy a hacer los pasos que me dijiste.
Quiero decirte que de sockets no tengo ni idea y de websockets tampoco, pero quiero tener conocimientos muy profundos de ambos.
Quisiera que porfavor me des una guia en donde pueda convertime en un experto, por que me doy cuenta que de lo que estabamos hablando es solo la punta del iceberg.
Tambien me desenvuelvo un poco en java, ¿Le puedo sacar provecho en esto de los sockets y websockets?

Y tambien muchas gracias por tus respuestas, de verdad que las valoro mucho.

Última edición por dacroma; 12/11/2018 a las 06:45
  #12 (permalink)  
Antiguo 12/11/2018, 13:57
 
Fecha de Ingreso: abril-2006
Mensajes: 150
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: utilizon sockets pero creo que el problema es con wampserver

Cita:
Iniciado por dacroma Ver Mensaje
Yo que pense que ya casi habia resuelto el problema, pero bueno. De lo que me acabas de indicar no tengo idea, voy a hacer los pasos que me dijiste.
Quiero decirte que de sockets no tengo ni idea y de websockets tampoco, pero quiero tener conocimientos muy profundos de ambos.
Quisiera que porfavor me des una guia en donde pueda convertime en un experto, por que me doy cuenta que de lo que estabamos hablando es solo la punta del iceberg.
Tambien me desenvuelvo un poco en java, ¿Le puedo sacar provecho en esto de los sockets y websockets?

Y tambien muchas gracias por tus respuestas, de verdad que las valoro mucho.
bueno, nadie nace experto, solo queda leer, practicar, leer, y preguntar, y si no existe la respuesta, pues investigar por otros enfoques,, bueno no se por donde decirte donde debes empezar, pero creo que antes de ello, debes partir de la teoria, de que es un WEBSOCKET; un websocket cliente, y un websocket servidor, y si para lo que quieres hacer es netamente indispensable, por que tambien se tiene otras alternativas, como peticiones AJAX , Server Sent events, commet, bueno hay varias,

luego con ello, ya puedes partir a por un ejemplo simple de WEBSOCKET CLIENTE y luego por un WEBSOCKET Servidor,

por ejemplo aca tienes un ejemplo de un cliente websocket

http://www.websocket.org/echo.html

simpe y sencillo,

luego ya podrias montarte un servidor, JAVA dispone de librerias websocket, yo recomendaria que partas primero por el lenguaje en el cual tengas mas dominio. si bien php tiene una curva de aprendizaje rapida, no es ideal en muchos para un WEBSOCKET SERVER ya que no cuenta con THreads o multihilos, en su lugar estan como alternativa NODEJS

aca tienes un ejemplo con JAVA websockets

https://www.pegaxchange.com/2018/01/...t-server-java/
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #13 (permalink)  
Antiguo 12/11/2018, 17:10
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 135
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: utilizon sockets pero creo que el problema es con wampserver

tuadmin muchas gracias.



La zona horaria es GMT -6. Ahora son las 05:46.