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.

Servidor Nodejs con MySQL y socket.io

Estoy tratando de crear un servidor Nodejs con MySQL y socket.io, ¿puedes ayudarme con un código de ejemplo? Tenemos una tabla con 20 columnas y cada 30 segundos tendremos nuevos datos ya sea insertando, eliminando o actualizando con un nuevo ID incremental. Estamos utilizando reactjs como cliente.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¡Claro! Aquí tienes un ejemplo de código para crear un servidor Node.js con MySQL y socket.io, basado en los requisitos que has mencionado:

    // Importar los módulos necesarios
    const express = require('express');
    const mysql = require('mysql');
    const socketIO = require('socket.io');
    
    // Establecer la conexión con MySQL
    const connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: 'password',
      database: 'mi_base_de_datos',
    });
    
    // Crear la aplicación Express
    const app = express();
    const port = 3000;
    
    // Iniciar el servidor
    const server = app.listen(port, () => {
      console.log(`Servidor escuchando en el puerto ${port}`);
    });
    
    // Configurar socket.io
    const io = socketIO(server);
    
    // Configurar la consulta a MySQL
    const query = 'SELECT * FROM mi_tabla ORDER BY id DESC LIMIT 1';
    
    // Enviar los datos iniciales al cliente al establecer la conexión
    io.on('connection', socket => {
      connection.query(query, (error, results) => {
        if (error) throw error;
    
        socket.emit('data', results[0]);
      });
    });
    
    // Configurar el intervalo para enviar nuevos datos al cliente cada 30 segundos
    setInterval(() => {
      connection.query(query, (error, results) => {
        if (error) throw error;
    
        io.emit('data', results[0]);
      });
    }, 30000);
    
    // Configurar las rutas para el cliente
    app.use('/', express.static(__dirname + '/public'));
    
    // Crear código de cliente React en el directorio public/
    
    

    En el lado del cliente, puedes utilizar el siguiente código para conectarte al servidor y recibir datos:

    import React, { useState, useEffect } from 'react';
    import io from 'socket.io-client';
    
    const socket = io('http://localhost:3000');
    
    function App() {
      const [data, setData] = useState({});
    
      useEffect(() => {
        socket.on('data', newData => {
          setData(newData);
        });
      }, []);
    
      return (
        <div>
          {/* Mostrar los datos desde el estado */}
        </div>
      );
    }
    
    export default App;
    

    Esto debería darte una idea básica de cómo configurar un servidor Node.js con MySQL y socket.io, y cómo conectarse a él desde un cliente React. Por supuesto, esto es solo un punto de partida, y deberás modificar el código según tus necesidades específicas.

Comments are closed.