Код вашего сервера правильный, но возникли некоторые недоразумения.
[сервер]
// Namespaces
var users_ns = io.of('/users');
var machines_ns = io.of('/machines');
// Attempt to receive the event on the socket
users_ns.on('connection', function(socket){
socket.on('test', function(){
console.log('socket test');
});
});
// Emit an event to the 'users' namespace
machines_ns.on('connection', function(socket){
users_ns.emit('test');
});
Когда вы вещаете на сокеты users_ns, эти события принимаются на стороне клиента, а не на стороне сервера.Так что это правильный код на стороне клиента
[Client1]
var socket = io('http://localhost/users');
socket.on('test',function(){ alert('broadcast received');});
[Client2]
var socket = io('http://localhost/machines');
, когдаодин сокет подключается к пространству имен компьютера, все клиенты, подключенные к пространству имен пользователя, будут выдавать предупреждение «широковещательный прием».