ما الذي يحدث بالفعل؟
لم يتم تشغيل / تشغيل حدث 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)
})
بعد قراءة وثائق الإصدار 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:
التعليق الأكثر فائدة
أهلا! أنت محق تمامًا ، يجب تضمين هذا في دليل الترحيل.
يجب أن تكون قادرًا على إعادة إنتاج السلوك باستخدام: