Ответ 1
По умолчанию пространство имен, к которым подключаются клиенты Socket.IO, по умолчанию: /
.
Он идентифицируется io.sockets
или просто io
(docs).
Этот пример скопирован из документации:
// the following two will emit to all the sockets connected to `/`
io.sockets.emit('hi', 'everyone');
io.emit('hi', 'everyone'); // short form
Я предполагаю, что это то же самое для 'on', как и для 'emit': использование 'io.sockets' эквивалентно использованию только 'io', это просто более короткая форма.
В "пространство имен" ваши сокеты означает назначение разных конечных точек или путей (что может быть полезно).
Из ответа на это SO question:
"Socket.io выполняет всю работу для вас, как если бы это были два отдельных экземпляра, но все же ограничивает информацию одним соединением, что довольно удобно".