Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

586
Visualizações
Conéctese al servidor Socket.IO con una ruta y un espacio de nombres específicos

Mi aplicación Node.js se ejecuta en la URL http://www.example.com/myapp/ .

He configurado un servidor Socket.IO (versión 1.3.5) con un espacio de nombres personalizado. Aquí hay un fragmento de código de ejemplo:

 var server = http.createServer(...); var io = socketio(server); io .of('/a/b/c') .on('connection', function (socket) { socket.emit('update', {msg: '/a/b/c'}); });

No puedo averiguar cómo conectarme a este servicio desde el cliente. Mis conjeturas (ninguna de estas funciona):

 io.connect('http://www.example.com/myapp/a/b/c'); io.connect('http://www.example.com', {path: '/myapp/a/b/c'}); io.connect('', {path: '/myapp/a/b/c'}); io.connect('http://www.example.com/a/b/c', {path: '/myapp'}); io.connect('http://www.example.com', {path: '/myapp/socket.io/a/b/c'});
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En su servidor, no olvide especificar la ruta también:

 var io = require('socket.io')(http, { path: '/myapp/socket.io'}); io .of('/my-namespace') .on('connection', function(socket){ console.log('a user connected with id %s', socket.id); socket.on('my-message', function (data) { io.of('my-namespace').emit('my-message', data); // or socket.emit(...) console.log('broadcasting my-message', data); }); });

En su cliente, no confunda el espacio de nombres y la ruta:

 var socket = io('http://www.example.com/my-namespace', { path: '/myapp/socket.io'});
over 4 years ago · Santiago Trujillo Relatório

0

También estoy usando 1.3.5, en un escenario ligeramente similar, desde una aplicación de una sola página de Angular, donde el código de cliente para socket.io simplemente se concatena con el resto de la aplicación (de un paquete Bower), en lugar de descargar/ incluidos desde una ubicación de red en particular.

Lo que parece funcionar para mí en la configuración donde se encuentra mi socket.io:

 http://somedomain.com:9096/sockets/socket.io.js

en lugar del valor predeterminado:

 http://somedomain.com:9096/socket.io/socket.io.js

(Ajusté manualmente la ruta en el lado del servidor), es:

 io.connect('http://somedomain.com:9096' + '/' + namespaceName, { path: '/sockets' });

Parece equivalente a su escenario:

 io.connect('http://www.example.com/a/b/c', {path: '/myapp'});

que puede valer la pena otro intento. No he probado por completo el nombre del espacio de namespaceName con barras diagonales, pero parece captar la conexión en el lado del cliente, cuando simplemente cambio mi espacio de nombres a '/a/b/c'

Lo que probablemente marca la diferencia es la configuración del lado de mi servidor, que dice:

 var server = http.createServer(app); var io = require('socket.io')(server, { path: '/sockets' }).listen(server);

Mi respuesta es más una indicación general de que es posible usar tanto un espacio de nombres como una ruta personalizada, a pesar de que la configuración no es obvia. Espero que pueda ser útil para usted de alguna manera.

over 4 years ago · Santiago Trujillo Relatório

0

Puedes consultar la documentación oficial sobre Rooms y Namespaces . Básicamente, lo mejor de socket.io es que, una vez que su cliente solicite las fuentes del lado del cliente, transmitirá todos los detalles necesarios para que el cliente se conecte al servidor (host, ruta, puerto, etc.).

Para conectarse a su espacio de nombres específico, en el cliente simplemente tendría que especificar:

 var socket = io('/a/b/c');
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda