gpt4 book ai didi

javascript - 从连接的套接字查找命名空间或 URL 信息?

转载 作者:行者123 更新时间:2023-12-02 16:59:50 25 4
gpt4 key购买 nike

当套接字连接到服务器时,有没有办法找到它的命名空间或客户端 URL?

客户:

var socket = io.connect('/ns1');

服务器:

io.sockets.on('connection', function(socket){
//socket.something.namespace?
});

我已经广泛地查看了套接字的对象结构,但对 namespace 的任何引用都只有“name”:“/”或列出了所有服务器的 namespace ,而不是单个套接字的 namespace 。

对于 URL 也是如此。我只能在 header 引用中找到它,但这可能不如真正的 URL 引用那么强大。

最佳答案

socket.io guide使用这种方式来监听 namespace 上的连接:

var nsp = io.of('/my-namespace');
nsp.on('connection', function(socket){
console.log('someone connected'):
});

它还引用“io.sockets”作为默认命名空间。因此,当“io.sockets.on('connection'”方法被触发时,您位于默认命名空间中。 Related

编辑:从动态创建的命名空间接收连接也非常简单。我认为这解决了你最初的问题。

另一个编辑:命名空间当然也可以在套接字 this.nsp.name 中访问:

function registerNamespace(name){
var nsp = io.of(name);
nsp.on('connection', function(socket){
console.log("I am in namespace: " + this.name);

socket.on('hello', function () {
console.log("Hello in namespace: " + this.nsp.name);
});

socket.on('disconnect', function () {
console.log("I was in namespace: " + this.nsp.name);
});
});
}

registerNamespace("/name2");
registerNamespace("/name1");

关于javascript - 从连接的套接字查找命名空间或 URL 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com