Socket.io - فشل حدث إعادة الاتصال بالعميل 3.0.0+.
قم بالتبديل إلى الإصدار 2.3.1 ويعمل.
const io = require('socket.io-client');
let socket = io.connect('ws://127.0.0.1:8000', {
"transports": ['websocket', 'polling'],
reconnection: true
});
socket.on('connect', function(data){
onlineFlag = true;
console.log(data + ' - connect');
});
socket.on('connect_error', function(data){
console.log(data + ' - connect_error');
});
socket.on('connect_timeout', function(data){
console.log(data + ' - connect_timeout');
});
socket.on('error', function(data){
console.log(data + ' - error');
});
socket.on('disconnect', function(data){
onlineFlag = false;
console.log(data + ' - disconnect');
});
socket.on('reconnect', function(data){
console.log(data + ' - reconnect');
});
socket.on('reconnect_attempt', function(data){
console.log(data + ' - reconnect_attempt');
});
socket.on('reconnecting', function(data){
console.log(data + ' - reconnecting');
});
socket.on('reconnect_error', function(data){
console.log(data + ' - reconnect_error');
});
socket.on('reconnect_failed', function(data){
console.log(data + ' - reconnect_failed');
});
socket.on('ping', function(data){
console.log(data + ' - ping');
});
socket.on('pong', function(data){
console.log(data + ' - pong');
});
كان لي هذه المسألة أيضا؛ اكتشفتها!! حسب التصميم:
https://socket.io/docs/v3/migrating-from-2-x-to-3-0/index.html#The -Socket -ثيل-will-not-forward-forward-the-events-emitted- من قبل مديرها
تضمين التغريدة ماذا تقصد ب "إعادة الاتصال جميع الأحداث الفاشلة"؟
كما أشار tannerkrewson (شكرًا!) ، لم يعد مثيل Socket يصدر أي أحداث لإعادة الاتصال.
// no longer emitted
socket.on("reconnect_attempt", () => {});
// but you can listen to the events emitted by the Manager instance (the io attribute)
socket.io.on("reconnect_attempt", () => {});
هل من الممكن أن يكون لديك رسالة تحذير في وحدة التحكم إذا حاول شخص ما استخدام تلك الأحداث على المقبس نفسه؟ أعتقد أن هذا سيكون مفيدًا للغاية للأشخاص الذين يهاجرون ، بدلاً من أن يفشلوا بصمت. 😄
التعليق الأكثر فائدة
تضمين التغريدة ماذا تقصد ب "إعادة الاتصال جميع الأحداث الفاشلة"؟
كما أشار tannerkrewson (شكرًا!) ، لم يعد مثيل Socket يصدر أي أحداث لإعادة الاتصال.