Socket.io-client: El ping-pong para latencia ya no parece funcionar

Creado en 10 nov. 2020  ·  6Comentarios  ·  Fuente: socketio/socket.io-client

Tú quieres:

  • [x] informar un error
  • [] solicitar una función

Comportamiento actual

¿Qué está pasando realmente?

El evento Pong en el cliente no se dispara / dispara, incluso con pingInterval habilitado / configurado en el servidor

Pasos para reproducir (si el comportamiento actual es un error)

https://github.com/Tiboonn/socket.io-fiddle
En la bifurcación anterior, la versión de socket.io y socket.io-client son 3.0.0, en las que el evento 'pong' no funciona.
Si cambia ambas versiones en el packege.json a 2.3.0 y reinstala los paquetes, el evento 'pong' está funcionando

Comportamiento esperado

¿Lo que es esperado?

Espero que la latencia sea ms con el siguiente bloque de código en el lado del cliente

socket.on('pong', function (ms) {
    console.log(ms)
})

Configuración

  • SO: Ubuntu 20.04
  • navegador: Firefox / Chrome (probado en varios)
  • versión de socket.io: 3.0.0

Otra información (p. Ej., Seguimiento de pila, problemas relacionados, sugerencias de cómo solucionarlo)

Needs documentation

Comentario más útil

¡Hola! Tiene toda la razón, esto debería estar incluido en la guía de migración.

Debería poder reproducir el comportamiento con:

// server-side
io.on("connection", (socket) => {
  socket.on("ping", (cb) => {
    if (typeof cb === "function")
      cb();
  });
});

// client-side
setInterval(() => {
  const start = Date.now();

  socket.volatile.emit("ping", () => {
    const latency = Date.now() - start;
    // ...
  });
}, 5000);

Todos 6 comentarios

Después de leer la documentación de la versión 3, noté que se eliminó el evento pong , pero no se menciona en los cambios importantes.

¿Existe alguna solución alternativa en este momento?

También esto se menciona en el siguiente compromiso:

https://github.com/socketio/socket.io-client/commit/be8c3141bdbbdfa59c4d0ca4b3149236e200878f

Parece que esta característica se eliminó debido a engine.io ...

@hadimostafapour ¡¡¡Buen descubrimiento !!! :)
Creo que tomaré el código del compromiso que mencionaste y lo implementaré yo mismo: D

¡Hola! Tiene toda la razón, esto debería estar incluido en la guía de migración.

Debería poder reproducir el comportamiento con:

// server-side
io.on("connection", (socket) => {
  socket.on("ping", (cb) => {
    if (typeof cb === "function")
      cb();
  });
});

// client-side
setInterval(() => {
  const start = Date.now();

  socket.volatile.emit("ping", () => {
    const latency = Date.now() - start;
    // ...
  });
}, 5000);

@darrachequesne ¡¡ Gracias por el fragmento de código !!

Agregado aquí: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/#No -more-% E2% 80% 9Cpong% E2% 80% 9D-event-for -recuperación-latencia

Gracias por los comentarios: +1:

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