Socket.io-client: Socket.io - Falha no evento de reconexão do cliente 3.0.0+

Criado em 30 dez. 2020  ·  3Comentários  ·  Fonte: socketio/socket.io-client

Socket.io - O evento de reconexão do cliente 3.0.0+ falhou.

Mude para a versão 2.3.1 e 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

Comentários muito úteis

@newpanjing hi! O que você quer dizer com "evento de reconexão com falha total"?

Conforme apontado por @tannerkrewson (obrigado!), A instância Socket não emite mais eventos de reconexão.

// 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 comentários

Eu também tive esse problema; Eu descobri !! É por design:

https://socket.io/docs/v3/migrating-from-2-x-to-3-0/index.html#The -Socket-instance-will-no-mais-forward-the-events-emitted- por-seu-gerente

@newpanjing hi! O que você quer dizer com "evento de reconexão com falha total"?

Conforme apontado por @tannerkrewson (obrigado!), A instância Socket não emite mais eventos de reconexão.

// 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", () => {});

Seria possível ter uma mensagem de aviso no console se alguém tentar usar esses eventos no próprio soquete? Acho que seria muito útil para as pessoas que estão migrando, em vez de falhar silenciosamente. 😄

Esta página foi útil?
0 / 5 - 0 avaliações