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

273
Visualizações
Servidor WebSocket vinculado al servidor HTTP, pero ¿por qué?

Encontré muchos ejemplos que muestran cómo crear un servidor websocket (nodejs).

Ejemplo de ilustración (por mi parte, estoy usando expressJS):

 var http = require('http'); /** QUESTION 2 (optional) */ var WebSocketServer = require('websocket').server; var httpServer = http.createServer((request, response) => { ... }); httpServer.listen(8080, () => { ... }); wsServer = new WebSocketServer({ httpServer: server, /** QUESTION 1 */ ... });

PREGUNTA 1 : ¿Por qué WebSocketServer necesita la instancia de httpServer? Me imaginé creando un servidor WS especificando solo un host y un puerto, no una instancia HTTP.

PREGUNTA 2 : ¿Puedo usar ExpressJS?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Finalmente lo tengo !

Entonces HTTP y WebSockets son ambos protocolos. WebSockets utiliza el protocolo HTTP para funcionar. Entonces, respondiendo mi propia PREGUNTA 1: WebSockets aumenta el protocolo HTTP al saber cómo comunicarse con el protocolo websocket. Es por eso que se necesita un servidor HTTP.

Para la pregunta 2, es un poco más sutil. Puede usar dos instancias HTTP diferentes (una para una API HTTP normal y otra para los WebSockets). Entonces trae la pregunta de: ¿Por qué necesita ambos? Y la respuesta es bastante lógica. Bueno, si ya tiene una instancia HTTP (http.createServer o Express appServer), entonces puede reutilizar la misma instancia HTTP para evitar ser codicioso con los recursos de su servidor.

Básicamente, usar la misma instancia HTTP en Express y con websocket.io (como ilustración). Tu harías

 const express = require('express'); const app = express(); const http = require('http'); const server = http.createServer(app); const { Server } = require("socket.io"); /** socket.io is using the single 'server' instance (bound to it) */ const io = new Server(server); /** Add a route to express that is bound to the single HTTP server instance */ app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); /** Add a websocket path that is bound to the single HTTP server instance */ io.on('connection', (socket) => { console.log('a user connected'); }); /** Express is using the single 'server' instance (bound to it). */ server.listen(3000, () => { console.log('listening on *:3000'); });

Fuente: https://socket.io/fr/get-started/chat

¡En ese ejemplo, podemos ver que expressJS y websocket.io están usando la misma instancia HTTP! \o/

about 4 years ago · Juan Pablo Isaza 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