Websocket Socket.io命名空间连接
全部: 我对socket.io非常陌生,当我尝试名称空间时,我想知道为什么默认通道和指定通道都会被调用,比如:Websocket Socket.io命名空间连接,websocket,socket.io,Websocket,Socket.io,全部: 我对socket.io非常陌生,当我尝试名称空间时,我想知道为什么默认通道和指定通道都会被调用,比如: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ console.log("Send chat page"); res.sendFile(_
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
console.log("Send chat page");
res.sendFile(__dirname+'/index.html');
});
io.on('connection', function(socket){
console.log("Connected");
});
var chat = io.of("/chat");
chat.on('connection', function(socket){
console.log("Connected chat");
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
客户端代码如下所示:
var socket = io("http://localhost:3000/chat");
当我运行它时,控制台会打印出“已连接”和“已连接聊天”
我想知道为什么它是这样工作的,以及如何只连接到聊天频道?
谢谢我相信它是这样工作的,因为他们就是这样实施的。虽然文档不是100%清楚,但它确实给人一种印象,即始终存在默认连接,这就是它的工作方式。如果您只想连接到一个频道,就不要将任何侦听器连接到io。on…@Gary谢谢,所以socket.io连接更像是逐级连接?首先连接default/,然后连接/下的任何名称空间_level2,然后连接名称空间_level2下的任何名称空间_level3?我知道它作为/(默认)和/名称空间(名称空间)工作。我怀疑你可以有多个级别,但试试看。我的理解是,如果使用名称空间,则会得到一个默认通道和一个名称空间。