es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cliente de Socket.io en NodeJS

Quiero construir una infraestructura de microservicios con servicios de Node.js y un servicio maestro, la comunicación entre estos servicios debería ocurrir a través de socket.io. He configurado mi servidor de socket.io, pero su cliente de navegador (socket.io-client) no funciona en Node.js (supongo que utiliza algunas API exclusivas del navegador). ¿Existe alguna forma de crear un cliente de socket.io para Node.js (NO WEBSOCKETS)?

EDICIÓN

Mi código del lado del cliente:

import { io } from "socket.io-client";
const socket = io("127.0.0.1:3000");

socket.on("connect", () => {
  console.log(socket.id);
});

socket.on("disconnect", () => {
  console.log(socket.id);
});

Mi código del lado del servidor:

import { Server } from "socket.io";
const io = new Server();

io.on("connection", (socket) => {
  console.log(socket)
});

io.listen(3000);

Ambos están escritos en TypeScript, las versiones de los paquetes son:

socket.io: ^4.4.0
socket.io-client: ^4.4.0

El problema es que no obtengo ningún registro en mi consola, así que creo que hay algo mal con el cliente porque socket.io no menciona a Node en la gráfica de compatibilidad del lado del cliente.

enter image description here

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de crear un cliente Node.js para Socket.io. Puedes usar la misma biblioteca Socket.io que utilizaste para crear el código del servidor. Solo necesitas instalarla utilizando npm y luego importarla en tu código Node.js.

    Aquí tienes un ejemplo de código cliente para Node.js que se conecta a un servidor Socket.io en ejecución en localhost:

    const io = require('socket.io-client');
    const socket = io('http://localhost:3000');
    
    socket.on('connect', () => {
      console.log('Conectado al servidor Socket.io');
    });
    
    socket.on('disconnect', () => {
      console.log('Desconectado del servidor Socket.io');
    });
    
    socket.emit('message', '¡Hola servidor Socket.io!');
    

    Puedes reemplazar la URL del servidor con la URL de tu propio servidor. Ten en cuenta que también necesitarás manejar los mensajes entrantes y salientes de acuerdo con los requisitos de tu aplicación.

    Asegúrate también de estar utilizando versiones compatibles de Socket.io y Socket.io client tanto en el servidor como en el cliente.

Comments are closed.