我使用Socket.io - 1.0.6 with express。
并尝试下面的代码。
服务器
var io = require('socket.io')(http);
io.on('connect', function(socket){
console.log("server nsp->%s", socket.nsp.name);
//<-- printed always "server nsp->/", In my thought, it should print "/custom_nsp".
});
客户端
var socket = io.connect("http://mysocket.io/custom_nsp");
socket.on('connect', function(){
console.log("client nsp->%s", socket.nsp);
//<-- printed correctly "client nsp->/custom_nsp"
});
我不知道为什么服务器套接字的名称scce总是&#34; /&#34;。
我有什么不对吗?
答案 0 :(得分:0)
这是因为必须使用.of
方法执行自定义命名空间处理(请参阅docs)。
如果您按如下方式修改服务器端代码:
io.of('/custom_nsp').on('connect', function(socket) {
console.log("server nsp->%s", socket.nsp.name); //server nsp->/custom_nsp
});
你会得到你期望的。
但是,即使连接到/custom_nsp
,默认命名空间处理程序也会触发,但仍然不清楚。