Socket.io-client: Socket.io: el evento de reconexión del cliente 3.0.0+ falló

Creado en 30 dic. 2020  ·  3Comentarios  ·  Fuente: socketio/socket.io-client

Socket.io: el evento de reconexión del cliente 3.0.0+ falló.

Cambie a la versión 2.3.1 y funciona.

const io = require('socket.io-client');

let socket = io.connect('ws://127.0.0.1:8000', {
    "transports": ['websocket', 'polling'],
    reconnection: true
});
socket.on('connect', function(data){
    onlineFlag = true;
    console.log(data + ' - connect');
});
socket.on('connect_error', function(data){
    console.log(data + ' - connect_error');
});
socket.on('connect_timeout', function(data){
    console.log(data + ' - connect_timeout');
});
socket.on('error', function(data){
    console.log(data + ' - error');
});
socket.on('disconnect', function(data){
    onlineFlag = false;
    console.log(data + ' - disconnect');
});
socket.on('reconnect', function(data){
    console.log(data + ' - reconnect');
});
socket.on('reconnect_attempt', function(data){
    console.log(data + ' - reconnect_attempt');
});
socket.on('reconnecting', function(data){
    console.log(data + ' - reconnecting');
});
socket.on('reconnect_error', function(data){
    console.log(data + ' - reconnect_error');
});
socket.on('reconnect_failed', function(data){
    console.log(data + ' - reconnect_failed');
});
socket.on('ping', function(data){
    console.log(data + ' - ping');
});
socket.on('pong', function(data){
    console.log(data + ' - pong');
});
question

Comentario más útil

@newpanjing ¡hola! ¿Qué quiere decir con "reconectar el evento todo falló"?

Como señaló @tannerkrewson (¡gracias!), La instancia de Socket ya no emite ningún evento de reconexión.

// no longer emitted
socket.on("reconnect_attempt", () => {});
// but you can listen to the events emitted by the Manager instance (the io attribute)
socket.io.on("reconnect_attempt", () => {});

Todos 3 comentarios

Yo también tuve este problema; ¡¡Me lo imaginé!! Es por diseño:

https://socket.io/docs/v3/migrating-from-2-x-to-3-0/index.html#The -Socket-instance-will-not-longer-forward-the-events-emitted- por-su-Gerente

@newpanjing ¡hola! ¿Qué quiere decir con "reconectar el evento todo falló"?

Como señaló @tannerkrewson (¡gracias!), La instancia de Socket ya no emite ningún evento de reconexión.

// no longer emitted
socket.on("reconnect_attempt", () => {});
// but you can listen to the events emitted by the Manager instance (the io attribute)
socket.io.on("reconnect_attempt", () => {});

¿Sería posible tener un mensaje de advertencia en la consola si alguien intenta usar esos eventos en el propio socket? Creo que sería muy útil para las personas que migran, en lugar de fallar silenciosamente. 😄

¿Fue útil esta página
0 / 5 - 0 calificaciones