首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取套接字信息超出范围io.on('connection',function( socket ){});

获取套接字信息超出范围io.on('connection',function( socket ){});
EN

Stack Overflow用户
提问于 2018-07-17 04:31:36
回答 1查看 137关注 0票数 0

请告诉我如何解决这个问题?

我的问题是关于套接字的,你必须对它有一些了解才能回答。

我试图将socket.id保存在函数外部声明的变量上,但没有成功……使用了偶数组,但也是一样的。

下面是我的代码:

var express = require('express');
var app = express();
var http = require('http').Server(app);

var io = require('socket.io')(http)

app.use('/', express.static('www'));

http.listen(3000, function(){
    console.log('listening on *:3000');
});

var token_user = {};
io.on('connection', function(socket){
    token_user["something"] = socket.handshake['query']['something'];
    token_user["socket_id"] = socket.id;

});
console.log(token_user["socket_id"]); // Undefined

我收到了一条消息:UNDEFINED

为了在其他函数中使用socket.id,有任何解决方案或其他方法可以让它离开那里吗?

EN

回答 1

Stack Overflow用户

发布于 2018-07-17 04:35:28

它看起来像是在token_user上设置字段之前执行console.log。当该事件发生时,将执行传递给io.on的方法。同步执行io.on之后的行。

尝试将console.log移动到传递给io.on()的函数中

function anotherMethod(user) {
    console.log(token_user["socket_id"]); // will be "x"
}

var token_user = {};
io.on('connection', function(socket){
    token_user["socket_id"] = "x"
    anotherMethod(token_user);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51369690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档