socket.io笔记三之子命名空间的socket连接

Posted 向着太阳生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket.io笔记三之子命名空间的socket连接相关的知识,希望对你有一定的参考价值。

当客户端发送admin命名空间下的连接,如果主连接也监听了connetion事件,主连接的connection事件会先触发执行,然后紧接着触发执行admin命名空间下的connection事件。如果客户端连接的是主连接,admin空间下的connection事件不会触发执行。

//服务端代码
var app = express();
var server = require(‘http‘).createServer(app);
var io = require(‘socket.io‘)(server,{handshake:{xdomain:true}});
var adminNameSpace =io.of(‘/admin‘);

adminNameSpace.on(‘connection‘, function(socket){ 
console.log(‘admin‘)
}

io.on(‘connection‘, function(socket){ 
console.log(‘io‘)
//io.close() 如果调用了close关闭方法,主连接关闭,子空间下的connection事件不会执行 }
//客户端代码 var ws = io(‘http://localhost:3002/admin‘); //服务端先输出"io",然后输出"admin" 如果连接的是ws = io(‘http://localhost:3002‘); //服务端只输出"io",adminNameSpace 空间下的connection事件不会执行 NOTE:在连接adminNameSpace命名空间时,如果主连接回调中把主连接关闭了,比如调用了io.close(),那么adminNameSpace的connection事件不会被执行

 

以上是关于socket.io笔记三之子命名空间的socket连接的主要内容,如果未能解决你的问题,请参考以下文章

Socket.io 命名空间限制以及如何扩展它

动态命名空间 Socket.IO

socket.io切换命名空间

使用 socket.io-client.java 库连接到 socket.io 命名空间

socket.io - 如何在命名空间上广播消息?

我可以在 socket.io 的命名空间中使用房间吗