Почему соединение сразу же закрывается?

Имеется вот такой PHP код на стороне клиента ( непосредственно на странице c HTML кодом ), в котором происходит авторизация пользователя. Название страницы - index.php

$client = new Client(new Version2X('http://localhost:1337', [
    'headers' => [
        'authuser:'. $_SESSION['user_id']
    ]
]));
$client->initialize();
$client->emit('join', ['userID'=>$_SESSION['user_id']]);

И обработчик на стороне soket.io (Код JS). Проше обратить внимание на console.log.

io.use(function (socket, next) {
    let user = socket.request.headers.authuser;
    console.log('user 0001: '+user);
    if(user) {
        console.log('users 0002: '+users);
        if (!users[socket.id]) {
            console.log('socketID 00021:'+socket.id)
            users[socket.id] = user;
            console.log('users 0003: '+users);
            console.log('connected 0004: '+io.sockets.connected);
        }

        return next();
    }
    else{
        return next(new Error("no authorization header"));
    }
});

io.on('connection', function (socket){
    socket.on('join', function (data) {
        socket.join(data.userID); // We are using room of socket io
        console.log('join 0005: '+data.userID);
    });

    socket.on('disconnect', function () {
        console.log('disconnect 0007: ');
    });
});

server.listen(port);

Вот что выдает консоль после запуска страницы index.php

user 0001: 26657d5ff9020d2abefe558796b99584
users 0002: [object Object]
socketID 00021:Ajp8ebjeVdajd4A-AAAB
users 0003: [object Object]
connected 0004: [object Object]
join 0005: 26657d5ff9020d2abefe558796b99584
disconnect 0007:

Вопросы следующие: Почему сразу же вызывается функция disconnect, если я нигде не прописываю $client->close();? Почему console.log: users 0003 выдает пустой массив, если значение socket.id известно и user также известен? Он ведь должен записать значение в массив вроде.


Ответы (0 шт):