Socket.io-client: Пинг-ΠΏΠΎΠ½Π³ для Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 10 нояб. 2020  Β·  6ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: socketio/socket.io-client

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅:

  • [x] ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± ошибкС
  • [] Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ происходит?

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Pong Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π½Π΅ запускаСтся / Π½Π΅ запускаСтся, Π΄Π°ΠΆΠ΅ Ссли pingInterval Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ / установлСн Π½Π° сСрвСрС

ДСйствия ΠΏΠΎ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ (Ссли Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ являСтся ошибкой)

https://github.com/Tiboonn/socket.io-fiddle
Π’ Π²ΠΈΠ»ΠΊΠ΅ Π²Ρ‹ΡˆΠ΅ вСрсии socket.io ΠΈ socket.io-client - 3.0.0, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ событиС 'pong' Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠ±Π΅ вСрсии Π² packege.json Π½Π° 2.3.0 ΠΈ пСрСустановитС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, событиС pong сработаСт.

ОТидаСмоС повСдСниС

Π§Ρ‚ΠΎ оТидаСтся?

Π― оТидаю ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² мс со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

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

ΠΠ°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ

  • ОБ: Ubuntu 20.04
  • Π±Ρ€Π°ΡƒΠ·Π΅Ρ€: Firefox / Chrome (ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ нСсколько Ρ€Π°Π·)
  • вСрсия socket.io: 3.0.0

Другая информация (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, трассировки стСка, связанныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, прСдлоТСния ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ)

Needs documentation

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π’Ρ‹ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²Ρ‹, это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² руководство ΠΏΠΎ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ воспроизвСсти ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

// 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);

ВсС 6 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ПослС прочтСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ v3 я Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ событиС pong Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ, Π½ΠΎ ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… измСнСниях ΠΎΠ½ΠΎ Π½Π΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ.

Π•ΡΡ‚ΡŒ Π»ΠΈ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ?

Π’Π°ΠΊΠΆΠ΅ это упоминаСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅:

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

ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, эта функция Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ·-Π·Π° engine.io ...

@hadimostafapour Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π½Π°Ρ…ΠΎΠ΄ΠΊΠ° !!! :)
Π”ΡƒΠΌΠ°ΡŽ, я Π²ΠΎΠ·ΡŒΠΌΡƒ ΠΊΠΎΠ΄ ΠΈΠ· упомянутого Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ сам Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽ Π΅Π³ΠΎ: D

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π’Ρ‹ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²Ρ‹, это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² руководство ΠΏΠΎ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ воспроизвСсти ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

// 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 Бпасибо Π·Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° !!

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ здСсь: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/#No -more-% E2% 80% 9Cpong% E2% 80% 9D-event-for -retrieving-latency

Бпасибо Π·Π° ΠΎΡ‚Π·Ρ‹Π²: +1:

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

hyperknot picture hyperknot  Β·  6ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Warrior-hound picture Warrior-hound  Β·  5ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

gtk2k picture gtk2k  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

imarun577 picture imarun577  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ahadcove picture ahadcove  Β·  7ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ