Ya revisé muchas preguntas y tutoriales y estoy siguiendo la documentación oficial del portal socketme. Estoy ejecutando esto en XAMPP/Localhost.
Websocket funciona cuando no estoy usando la interfaz WAMP. De lo contrario, no se puede conectar y no indica ningún motivo.
El error es: "app.js:6200 Conexión WebSocket a 'ws://localhost:8080/socket' falló: conexión cerrada inaccesible"
Servidor
$server = new \Ratchet\App('localhost', 8080); $server->route('/socket', new WebSocketHandler, array('*')); $server->run(); WebSocketHandler es una implementación básica de WampServerInterface y solo incluye los métodos abstractos sin ningún cambio.
En el lado del cliente, estoy haciendo lo siguiente para probar una conexión a través de autobahn-js:
var connection = new Autobahn.Connection({ transports: [{ type: 'websocket', port: 8080, host: 'localhost', url: 'ws://localhost:8080/socket' }], realm: 'realm1' }); connection.onopen = function(session) { app.content = app.content + `connected!` }; connection.onclose = function(reason, details) { app.content = app.content + `onclose!` } connection.open(); Hice algo mal en esta implementación, pero no puedo resolverlo. Intenté evitar el ->route y usar el siguiente enfoque estándar:
$server = IoServer::factory( new HttpServer( new WsServer( new WampServer( new WebSocketHandler() ) ) ), 8080 );Pero, no funcionó.
Cualquier ayuda es muy apreciada.
Necesita Autobahn.js 0.8.2 para conectarlo a Ratchet (WAMP v1) y es una implementación bastante antigua y también ab 0.8.2 es extremadamente antiguo.
Debe navegar su trabajo a Thruway. Traté de hacerlo, pero no pude encontrar ninguna implementación personalizada de Thruway RatcherRouter (onMessage, onOpen, etc.), por lo tanto, decidí hacer mi propia (bastante mala) implementación de Ratchet.
TL; DR: Cambiar a Thruway.