Socket.io 对象内的客户端
Socket.io client within an object
我正在使用 Node.js,使用 Socket.IO 与我服务器上的客户端通信...
例如:
在我的服务器上,我有一个User
class,其中包含每个用户的基本信息和功能。每次有人连接时,都会创建一个新的 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()
的消息时,我想填充 client
所拥有的 User
对象。但问题是访问 this
不会访问 User
对象,而是访问 client
对象(或者至少我是这么认为的,但它不是 User
而是一些 Socket.IO 对象)。即使当我引用 .on()
函数来调用我的对象中的函数时,例如 User
对象中的 this.event
,我仍然无法使用 [= 访问我的 User
对象19=]。我尝试在每个名为 self
的对象中创建一个局部变量,并将其设置为 this
,如下所示:self = this;
,但我无法编辑 this
,但只能 self
.
有什么想法吗?
this.client.on("event",function(data) {
console.log(this.value === "some random value"); // true
}.bind(this));
bind 使 this
关键字设置为提供的值,即用户对象。
我正在使用 Node.js,使用 Socket.IO 与我服务器上的客户端通信...
例如:
在我的服务器上,我有一个User
class,其中包含每个用户的基本信息和功能。每次有人连接时,都会创建一个新的 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()
的消息时,我想填充 client
所拥有的 User
对象。但问题是访问 this
不会访问 User
对象,而是访问 client
对象(或者至少我是这么认为的,但它不是 User
而是一些 Socket.IO 对象)。即使当我引用 .on()
函数来调用我的对象中的函数时,例如 User
对象中的 this.event
,我仍然无法使用 [= 访问我的 User
对象19=]。我尝试在每个名为 self
的对象中创建一个局部变量,并将其设置为 this
,如下所示:self = this;
,但我无法编辑 this
,但只能 self
.
有什么想法吗?
this.client.on("event",function(data) {
console.log(this.value === "some random value"); // true
}.bind(this));
this
关键字设置为提供的值,即用户对象。