مرحبا

قمت بكتابة بعض الاكواد لإعادة الاتصال التلقائي في الموقع عند انقطاع الاتصال لدى الزائر

والاكواد تعمل بشكل جيد ولكن هنالك مشكلة تسبب ثغرة وهي استخدام السوكيت في سطر الاوامر من قبل العميل

socket.emit("rc", {
                token: token,
                n: lk
            });

حاولت ان اضع تعريف typeof وتعطلت الاكواد

اردت في النهاية الاستعانة ببعض الخبراء لحل هذه المشكلة

اليكم الاكواد كاملة

   socket.on("rc",function(data){
        UsersRepo.getByToken(data['token']).then(function(login){
        if(login){
        const islog = online.findIndex((v) => v.lid == login.lid)
        if(islog != -1){
        if(UserInfo[online[islog].id]){
        UserInfo[online[islog].id].id = socket.id;
        };
        UserInfo[socket.id] = UserInfo[online[islog].id];
        io.emit("msg", { cmd: "u-", data: online[islog].id });
        io.emit("msg", { cmd: "ur", data: [online[islog].id, null] });
        delete UserInfo[online[islog].id];
        online[islog].id = socket.id;
        setTimeout(function(){
        io.emit("msg", { cmd: "u+", data: online[islog] });
        io.emit("msg", { cmd: "ulist", data: online });
        setTimeout(function(){
        socket.join(online[islog].roomid);
        if(online[islog]){
        io.emit("msg", { cmd: "ur", data: [socket.id, online[islog].roomid] });
        };
        },500);