gpt4 book ai didi

javascript - 对象内的 Socket.io 客户端

转载 作者:行者123 更新时间:2023-11-30 16:13:47 24 4
gpt4 key购买 nike

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

例如:

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

// 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() 接收消息时,我想填充 User 对象,它是 client 归属于。但问题是访问 this 并没有访问 User 对象,而是访问了 client 对象(或者至少我是这么认为的,但是它不是 User 而是一些 Socket.IO 对象)。即使当我引用 .on() 函数来调用我的对象中的函数时,例如 User 对象中的 this.event,我仍然无法使用 this 访问我的 User 对象。我尝试在每个名为 self 的对象中创建一个局部变量,并将其设置为 this,如下所示:self = this;,但我可以't edit this,但只编辑self

有什么想法吗?

最佳答案

this.client.on("event",function(data) {
console.log(this.value === "some random value"); // true
}.bind(this));
bindthis 关键字设置为提供的值,即 User 对象。

关于javascript - 对象内的 Socket.io 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35821686/

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