什么是Socket.io中的命名空间?
所谓的命名空间,在一个域中发消息,只有当前的域的socket能够收到消息,其他域的消息则不能。
-
服务端:通过io.of创建命名空间。
-
服务端进行广播的时候,也需要使用命名空间。
-
客户端向服务端发起连接的时候也需要指定命名空间。
egg.js中如何集成socket.io?
参考文档:https://eggjs.org/zh-cn/tutorials/socketio.html
- 安装egg-socket.io
npm i egg-socket.io --save
- 在plugin.js中进行插件配置
io: {
enable: true,
package: 'egg-socket.io',
}
- 在conig.default.js中进行如下配置
config.io = {
init: {
}, // passed to engine.io
namespace: {
'/': {
connectionMiddleware: [],
packetMiddleware: [],
},
},
};
- 指定io触发的时候连接的中间件
config.io = {
init: {
},