tutorial socket node example node.js tcp socket.io httpserver

node.js - node - socket.io npm



creando una conexión TCP cliente-servidor en el nodo: socket.io o net module (2)

Soy novato en el nodo y me gustaría crear una conexión TCP entre el cliente y el servidor utilizando node.js. Ya tengo un servidor http creado en el nodo y que envía / extrae datos hacia y desde el cliente. Ahora, necesito agregar este concepto orientado a la conexión.

He estado leyendo tutoriales y foros y estoy un poco confundido. Si lo entendí bien, hay dos formas de crear esa conexión:

  • actualizar mi servidor http ya existente a un servidor socket.IO

    var app = require(''http'').createServer(handler); var io = require(''socket.io'').listen(app); function handler(req, res){ //code } app.listen(8080);

  • crear un servidor TCP separado basado en el módulo de red y luego establecer una conexión entre este servidor TCP y el servidor http como se sugiere aquí Crear WebSockets entre un servidor TCP y un servidor HTTP en node.js

    var net = require(''net''); net.createServer(function (socket) { socket.write(''Hello World!/r/n''); socket.end(); }).listen(1337);

Entonces, ¿cuándo necesitamos crear 2 servidores TCP y HTTP separados y cuándo necesitamos tener solo un servidor (actualizar un servidor HTTP a un socket.IO uno)?


Si sus clientes son navegadores, entonces su única opción es usar WebSockets (socket.io proporciona dicha implementación).

Los navegadores no tienen una API que pueda usar para abrir sockets TCP sin procesar, que es lo que el módulo de red le brinda.


WebSockets no tienen nada que ver con las conexiones TCP (excepto que las usan). Si solo desea abrir una conexión TCP normal, el paquete de net integrado es lo que está buscando.

Socket.IO es un paquete RPC que utiliza WebSockets o WebSockets emulados sobre otros transportes como JSON de larga consulta.