Что такое "сокет" в функции подключения socket.io в NodeJS? - PullRequest
0 голосов
/ 02 августа 2020

Я учусь использовать socket.io на сервере nodejs. Я вижу пример, указанный ниже, и хотел бы знать, для чего нужна функция socket in connection? Это новый объект сокета? А откуда "id"? Я погуглил, но до сих пор не понимаю его функции. Спасибо

Код:

io.sockets.on('connection', function (socket) { //the socket in "function(socket)"
    socket.on('session_id', function (session_id) { socket.session_id = session_id; })
    setInterval(function() {
        socket.emit('date', {'date': new Date()});
    }, 1000);
}

1 Ответ

2 голосов
/ 02 августа 2020

Давайте немного переделаем ваш пример, чтобы удалить вложенную функцию.

function connectionHandler (socket) { 
    socket.on('session_id', function (session_id) { 
        socket.session_id = session_id; 
    })
    setInterval(function() {
        socket.emit('date', {'date': new Date()});
    }, 1000);
 }

 io.sockets.on('connection', connectionHandler)

В вашем примере io.sockets - ваш сервер socket.io. io.sockets.on('connection', connectionHandler) регистрирует функцию обработчика событий подключения.

Затем каждый раз, когда подключается клиент (возможно, код, запущенный в браузере пользователя), ваш connectionHandler вызывается с объектом socket для текущего подключения.

socket.on('session_id') настраивает обработчик событий для прослушивания сообщений, отправленных от клиентов с emit('session_id','some message payload').

...