Que se passe-t-il réellement ?
L'événement Pong sur le client n'est pas déclenché/déclenché, même avec pingInterval activé/défini sur le serveur
https://github.com/Tiboonn/socket.io-fiddle
Dans le fork ci-dessus, les versions de socket.io et socket.io-client sont 3.0.0 sur lesquelles l'événement 'pong' ne fonctionne pas.
Si vous modifiez les deux versions du packege.json en 2.3.0 et réinstallez les packages, l'événement 'pong' fonctionne
Qu'est-ce qui est attendu ?
Je m'attends à ce que la latence soit de ms avec le bloc de code suivant côté client
socket.on('pong', function (ms) {
console.log(ms)
})
Après avoir lu la documentation de la v3, j'ai remarqué que l'événement pong
avait été supprimé, mais en cas de rupture des modifications, il n'est pas mentionné.
Existe-t-il une solution de contournement pour le moment ?
Cela est également mentionné dans le commit suivant :
https://github.com/socketio/socket.io-client/commit/be8c3141bdbbdfa59c4d0ca4b3149236e200878f
Il semble que cette fonctionnalité ait été supprimée à cause de engine.io...
@hadimostafapour Bonne trouvaille !!! :)
Je pense que je vais prendre le code du commit que vous avez mentionné et l'implémenter moi-même :D
Salut! Vous avez tout à fait raison, cela devrait être inclus dans le guide de migration.
Vous devriez pouvoir reproduire le comportement avec :
// 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 Merci pour le bout de code !!
Ajouté ici : https://socket.io/docs/v3/migrating-from-2-x-to-3-0/#No -more-%E2%80%9Cpong%E2%80%9D-event-for -récupération-latence
Merci pour le retour :+1:
Commentaire le plus utile
Salut! Vous avez tout à fait raison, cela devrait être inclus dans le guide de migration.
Vous devriez pouvoir reproduire le comportement avec :