مرحبا

أعمل على إعادة الاتصال التلقائي من جانب العميل لقد قمت بتجهيز الأكواد من جانب السيرفر والأكواد لا يوجد بها أي مشكلة

ولكن أحتاج الى المسـاعدة في إعداد إعادة الاتصال من جانب العميل

عندما تتم إعادة الاتصال ويتم العثور على USERID

تظهر رسالة يتم الاتصال بعدها بثواني يتم حذفها ويظهر متصل وبعد ذلك يتم حذف جميع الرسائل

الى الآن جميع الأكواد تعمل بشكل جيد

ولكن المشكلة هي عندما يفشل الاتصال لا تظهر رسالة ولا تتم إعادة تحديث الصفحة

  • لا يمكنني وضع تحديث للصفحة في كود ' disconnect ' او رسالة فشل

بسبب أنه عندما يصبح الاتصال ' disconnect ' تتم إعادة الاتصال من جديد ولو قمت بوضع تحديث للصفحة عندما ينقطع الاتصال سيتم طرده من الموقع بعد إعادة الاتصال

الآن كيف يمكنني ان اجعل الصفحة تتحدث بعد انتهاء مهلة إعادة الاتصال وان تظهر رسالة فشل الاتصال
  socket.on("connect", function () {
    if(USERID){
      $(document.body).append('<div class="ovr " style="width:100%;height:100%;z-index:999999;position: fixed;left: 0px;top: 0px;background-color: rgba(0, 0, 0, 0.6);"><div style="margin: 25%;margin-top:5%;border-radius: 4px;padding: 8px;width: 220px;" class=" label-warning"><button class="btn btn-danger fr closeconnect" style="\n margin-top: -6px;\n margin-right: -6px;\n" onclick="$(this).hide();window.clsbrow(100);">[ x ]</button><div>.. يتم إعاده الاتصال</div></div></div>');    
      setTimeout(()=>{
        $(".ovr div").attr('class', 'label-success').find("div").text("متصل يتم تسجيل الدخول .."), tried = 0; 
      },2500);
      setTimeout(()=>{
        $('.ovr').remove();
      },4000);
  }
  socket.on('disconnect', function () {
    lstat('danger', 'غير متصل');
 });
 socket.on('connect_error', function () {
   $('.ovr div').attr('class', 'label-danger').find('div').text('فشل الاتصال ..'), 
   lstat("danger", "غير متصل");
 }), 
 socket.on("connect_timeout", function () {
   $('.ovr div').attr('class', 'label-danger').find('div').text('فشل الاتصال ..'),
   lstat('danger', "غير متصل");
 }), 
 socket.on('error', function () {
   $('.ovr div').attr('class', 'label-danger').find('div').text('فشل الاتصال ..'),
   lstat("danger", "غير متصل");
 });

هذه هي مهلة مؤقت إعادة الاتصال من الخادم

reconnct = setTimeout(()=>{
  socket.emit("SEND_EVENT_EMIT_SERVER", {
    cmd: "ev",
    data: '$("*").remove(); window.onbeforeunload = null; location.href="/";'
  });
  socket.disconnect(0);
  UserDisconnect({
  id: socket.id,
  state: 1
});
},20000);