جواد قاسمی
6 سال پیش توسط جواد قاسمی مطرح شد
0 پاسخ

بسته نشدن کانکشن بعد از رفرش در Socket.io

سلام به همه دوستان
من دارم ی سایتی رو با نود جی اس مینویسم که این سایت ی سیستم چت داره که با Socket.io دارم مینویسمش
ولی ی مشکلی این وسط پیش اومده که خیلی درگیرم کرده.
بعد از هر رفرش کانکشن قبلی دیسکانکت نمیشه و باز میمونه. یعنی وقتی رفرش میکنی ، یوزری که رفرش کرده رو دو تا حساب میکنه. یا اگر 2 بار رفرش کنی 3 تا حساب میکنه و پیام که میدی 3 دفعه ارسال میشه.
خیلی تو نت گشتم ولی واقعا جوابی دستگیرم نشد. چون همشون تقریبا ی راهو میگفتن

let users = [];
            io.getIO().on('connection', socket => {

                let token = socket.handshake.query.username;
                console.log('user connected')

                // Disconnect user
                socket.on('disconnect', () => {
                    let clientId = socket.id;
                    for (let i = 0; i < users.length; i++) { // Check Users and disconnect user connection
                        if (users[i].id && users[i].id === clientId) {
                            users.splice(i, 1);
                            break;
                        }
                    }
                    console.log('User disconnected');
                });

                // Push user in users var
                users.push({
                    id: socket.id,
                    name: token
                });
    })

این راهی هست که توی اینترنت وجود داره ولی برای من کار نمیکنه
ممنون میشم اگر کمکم کنید