Socket.io-client: لا يبدو أن لعبة Ping-pong لوقت الاستجابة تعمل بعد الآن

تم إنشاؤها على ١٠ نوفمبر ٢٠٢٠  ·  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

معلومات أخرى (مثل stacktraces والمشكلات ذات الصلة واقتراحات كيفية الإصلاح)

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 كومينتر

بعد قراءة وثائق الإصدار 3 ، لاحظت أنه تمت إزالة حدث pong ولكن لم يتم ذكره في التغييرات الفاصلة.

هل هناك أي حل في الوقت الحالي؟

وهذا مذكور أيضًا في الالتزام الآتي:

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

يبدو أنه تمت إزالة هذه الميزة بسبب engine.io ...

hadimostafapour البحث الجيد !!! :)
أعتقد أنني سآخذ الكود من الالتزام الذي ذكرته وأقوم بتنفيذه بنفسي: د

أهلا! أنت محق تمامًا ، يجب تضمين هذا في دليل الترحيل.

يجب أن تكون قادرًا على إعادة إنتاج السلوك باستخدام:

// 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 التقييمات

القضايا ذات الصلة

newpanjing picture newpanjing  ·  3تعليقات

Sairyss picture Sairyss  ·  4تعليقات

patrickbussmann picture patrickbussmann  ·  6تعليقات

ahadcove picture ahadcove  ·  7تعليقات

catamphetamine picture catamphetamine  ·  3تعليقات