我正在开发一款拥有两种类型用户的应用。我想在两个socket.io文件中分离出它们的功能。
index.js:
var io = require('socket.io').listen(server);
require('/sockets/userType1')(io);
require('/sockets/userType2')(io);
userType1.js:
module.exports = function (io) {
io.on("connection", function (socket) {
console.log("Connected to userType1");
});
}
userType2.js
module.exports = function (io) {
io.on("connection", function (socket) {
console.log("Connected to userType2");
});
}
然而,当我从客户端连接时,它连接到两者(我想我会期望,因为我没有区分我试图连接到哪一个)。
有没有办法将连接定义为只连接到其中一个socket.io类?或者我只需要依赖命名约定?
答案 0 :(得分:1)
Socket.io NAMESPACES
userType1.js:
module.exports = function (io) {
var nsp = io.of('/userType1');
nsp.on("connection", function (socket) {
console.log("Connected to userType1");
});
}
userType2.js
module.exports = function (io) {
var nsp = io.of('/userType2');
nsp.on("connection", function (socket) {
console.log("Connected to userType2");
});
}
userTypeALLUSERS:
module.exports = function (io) {
io.on("connection", function (socket) {
console.log("Connected to ALL USERS");
});
}
客户端(for usertype2):
var socket = io('/userType2');
服务器控制台:
已连接到userType2
连接所有用户