跟踪哪个UDP套接字接收数据包

时间:2015-01-27 18:39:55

标签: javascript node.js

我目前正在使用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?是否有可能做我现在想做的事情?我可能错过了什么。

1 个答案:

答案 0 :(得分:0)

我刚发现使用bind()我得到了我需要的结果。