Socket.io-client: λŒ€κΈ° μ‹œκ°„μ— λŒ€ν•œ 핑퐁이 더 이상 μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 11μ›” 10일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: socketio/socket.io-client

μ›ν•˜λŠ” μž‘μ—…:

  • [x] 버그 보고
  • [ ] κΈ°λŠ₯ μš”μ²­

ν˜„μž¬ 행동

μ‹€μ œλ‘œ 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

μ„œλ²„μ—μ„œ pingInterval이 ν™œμ„±ν™”/μ„€μ •λœ κ²½μš°μ—λ„ ν΄λΌμ΄μ–ΈνŠΈμ˜ Pong μ΄λ²€νŠΈκ°€ μ‹œμž‘/νŠΈλ¦¬κ±°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μž¬ν˜„ 단계(ν˜„μž¬ λ™μž‘μ΄ 버그인 경우)

https://github.com/Tiboonn/socket.io-fiddle
μœ„μ˜ ν¬ν¬μ—μ„œ socket.io 및 socket.io-client 버전은 'pong' μ΄λ²€νŠΈκ°€ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 3.0.0μž…λ‹ˆλ‹€.
package.json의 두 버전을 λͺ¨λ‘ 2.3.0으둜 λ³€κ²½ν•˜κ³  νŒ¨ν‚€μ§€λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜λ©΄ 'pong' μ΄λ²€νŠΈκ°€ μž‘λ™ μ€‘μž…λ‹ˆλ‹€.

μ˜ˆμƒλ˜λŠ” 행동

무엇을 κΈ°λŒ€ν•©λ‹ˆκΉŒ?

ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ λ‹€μŒ μ½”λ“œ 블둝을 μ‚¬μš©ν•˜μ—¬ λŒ€κΈ° μ‹œκ°„μ„ ms둜 μ˜ˆμƒν•©λ‹ˆλ‹€.

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

μ„€μ •

  • 운영 체제: μš°λΆ„νˆ¬ 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 -검색 λŒ€κΈ° μ‹œκ°„

ν”Όλ“œλ°± μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€ :+1:

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰