Estoy trabajando en una aplicación que tiene 2 tipos de usuarios. Me gustaría separar su funcionalidad en dos archivos socket.io.
índice.js:
var io = require('socket.io').listen(server); require('/sockets/userType1')(io); require('/sockets/userType2')(io);tipodeusuario1.js:
module.exports = function (io) { io.on("connection", function (socket) { console.log("Connected to userType1"); }); }tipoUsuario2.js
module.exports = function (io) { io.on("connection", function (socket) { console.log("Connected to userType2"); }); }Sin embargo, cuando me conecto desde el lado del cliente, se conecta a ambos (lo que supongo que esperaría ya que no tengo nada que distinga a cuál estoy tratando de conectarme).
¿Hay alguna manera de definir la conexión para conectarse solo a una de esas clases de socket.io? ¿O solo necesito confiar en las convenciones de nomenclatura?
Espacios de nombres de Socket.io
tipodeusuario1.js:
module.exports = function (io) { var nsp = io.of('/userType1'); nsp.on("connection", function (socket) { console.log("Connected to userType1"); }); }tipoUsuario2.js
module.exports = function (io) { var nsp = io.of('/userType2'); nsp.on("connection", function (socket) { console.log("Connected to userType2"); }); }tipo de usuario TODOS LOS USUARIOS:
module.exports = function (io) { io.on("connection", function (socket) { console.log("Connected to ALL USERS"); }); }Lado del cliente (para el tipo de usuario 2):
var socket = io('/userType2');consola del servidor:
Conectado a userType2
Conectado a TODOS LOS USUARIOS