我目前正在使用NodeJS,我想创建一个包含多个udp4套接字的数组。对我来说,哪个套接字正在接收消息很重要,所以我试图将所有内容存储如下:
var sockets = [];
function startSocket(socketObject) {
socketObject.HandleIncomingPacket = function(buffer, header) {
if(header.address === this.ip) {
console.log("ID: "+this.id+" | right IP");
}else{
console.log("ID: "+this.id+" | wrong IP. IP expected: "+this.ip+", given: "+header.address);
}
}
socketObject.socket = dgram.createSocket("udp4");
socketObject.socket.on("message", socketObject.HandleIncomingPacket);
socketObject.socket.bind(socketObject.port);
sockets[socketObject.id] = socketObject;
}
使用对象{ip: "127.0.0.1", port: 1234}
调用该函数工作正常(读取:无错误),但在传入的数据包上,我收到以下输出:ID: undefined | wrong IP. IP expected: undefined, given: 127.0.0.1
在此上下文中如何定义this
?是否有可能做我现在想做的事情?我可能错过了什么。
答案 0 :(得分:0)
我刚发现使用bind()
我得到了我需要的结果。