首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象中的Socket.io客户端

问对象中的Socket.io客户端
EN

Stack Overflow用户
提问于 2016-03-06 00:38:09
回答 1查看 378关注 0票数 1

我使用Node.js和Socket.IO与我的服务器上的客户端进行通信.

例如:

在我的服务器上,我有一个User类,它包含关于每个用户的基本信息和函数。每次有人连接时,都会创建一个新的User对象,并将其添加到users数组中,并对Socket.IO client对象进行解析。以下是代码:

代码语言:javascript
复制
// Set up server, Socket.IO, etc.

users = [];

var User = function(client) {
    this.value = "some random value";
    this.client = client;
    this.client.on("event",function(data) {
        // Do stuff with data
    });
}

socket.on("connection", function(client) {
    users.push(new User(client));
});

我的问题是:当使用Socket.IO .on()接收消息时,我想要填充client所拥有的User对象。但问题是,访问this并不是访问User对象,而是访问client对象(至少我认为是这样,但它不是User,而是一些Socket.IO对象)。即使我引用.on()函数来调用对象中的函数,就像在this.event对象中的User对象一样,仍然不能使用this访问User对象。我尝试在每个对象中创建一个名为self的局部变量,并将其设置为this,如下所示:self = this;,但我不能编辑this,而只能编辑self。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-06 19:47:35

​

代码语言:javascript
复制
this.client.on("event",function(data) {
  console.log(this.value === "some random value"); // true 
}.bind(this));

绑定将this关键字设置为提供的值,即用户对象。

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35821686

复制
相关文章

相似问题

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