¿Por qué no puedo enviar datos usando Socket.IO + node.js?

No puede enviar datos porque no está utilizando la devolución de llamada de conexión entrante correctamente en el código de su servidor. El controlador se ve así:

io.on('connection', fn);

En el ejemplo anterior, la instancia del servidor llama a la función fn cuando se conecta un socket. Esto significa que solo puede usar una instancia de socket específica una vez que esté disponible dentro de esa devolución de llamada. Aquí hay otro ejemplo:

io.on('connection', function(socket) {
// this runs when a socket connects
// that means emitting can only be done here
});

El código anterior es un controlador de conexión . Eso significa que escuchará en io eventos de connection y ejecutará la function(socket) { ... } cuando se conecte un socket.

Eso no funciona en la forma en que ha escrito su código, porque en su lugar, está vinculando los controladores de devolución de llamada a la instancia del servidor cada vez que se llama saveLatestData , lo que significa que en lugar de enviar datos, simplemente está agregando más controladores de conexión al io ejemplo.

Lo que podría hacer en su lugar es transmitir a todos los enchufes conectados:

function saveLatestData(data) {
io.sockets.emit('event', { ... });
}

Lo que esto le permite hacer es realizar una emisión independientemente de la conexión de un socket.

También hay otras soluciones, pero requerirán mucho más trabajo, ya que trabajará con dos procesos que se ejecutan de forma asincrónica (la instancia del servidor y el puerto serie).

En primer lugar, intente probar y atrapar (e) para su var socket = io.connect (‘http ……’) y ver si realmente obtiene una conexión. ¿También de dónde estás leyendo? (es decir, dónde está su base de datos)

No he revisado su código, pero me imagino que usar un protocolo como MQTT que tiene clientes simples y no es tan bajo como el socket io podría ser una mejor opción.

More Interesting

Si quiero hacer un anuncio en mi sitio web en PHP que sea visible insertando detalles en la base de datos (MySQL), ¿cómo puedo hacerlo?

Quiero comenzar como desarrollador de blockchain. Tengo 2 años de experiencia como desarrollador web. ¿Como empiezo?

Cómo crear un sitio web para mi instituto de entrenamiento

Acabo de comenzar a aprender HTML, pero ¿cuál es la diferencia entre las etiquetas y ?

Acabo de crear un .html simple y será la única página en mis servidores. ¿Cómo es que cada vez que escribo el dominio que está vinculando al proveedor de alojamiento?

Soy desarrollador web, no memorizo ​​la sintaxis de programación intencionalmente. Tengo que buscar la sintaxis de Google la mayor parte del tiempo, incluso para la sintaxis fácil. ¿Soy el peor desarrollador web?

Terminé de aprender Python como principiante, ¿qué debo hacer para mejorar mis habilidades en programación y Python?

Cómo crear un panel de administrador oculto para mis sitios web como Google, Facebook o los grandes sitios web

¿Qué debo aprender a continuación si conozco HTML, CSS, JavaScript, jQuery, PHP, MySQL y WordPress?

Estoy empezando a aprender desarrollo web, HTML, CSS, JS, etc. También acabo de comenzar freeCodeCamp. ¿En qué punto debo comenzar a asistir a reuniones locales?

Creé un formulario de inicio de sesión y registro simple en el código Ignitor. ¿Cómo puedo escribir el código para enviar un correo electrónico cuando la casilla de verificación del usuario olvidó la contraseña y también el código para recordarme?

Cómo crear una tabla con un marco de JavaScript

No tengo un formulario de registro en mi WordPress, pero la gente aún puede registrarse. ¿Cómo es eso así?

Quiero hacer un sitio web de tutoriales que también tenga mensajes sociales y foros. ¿Hay algún script PHP gratuito para esto?

Aprendí C y ahora quiero crear un sitio web como la forma más simple de Twitter usando Python. ¿Qué libros de Python me recomendarías?