Javascript 跟踪哪个UDP套接字接收数据包
我目前正在使用NodeJS,我想创建一个包含多个udp4套接字的数组。哪个套接字正在接收消息对我来说很重要,因此我尝试按以下方式存储所有内容:Javascript 跟踪哪个UDP套接字接收数据包,javascript,node.js,Javascript,Node.js,我目前正在使用NodeJS,我想创建一个包含多个udp4套接字的数组。哪个套接字正在接收消息对我来说很重要,因此我尝试按以下方式存储所有内容: var sockets = []; function startSocket(socketObject) { socketObject.HandleIncomingPacket = function(buffer, header) { if(header.address === this.ip) { co
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;
}
用object{ip:“127.0.0.1”,port:1234}
调用函数可以正常工作(读取:无错误),但在传入的数据包上,我收到以下输出:ID:undefined |错误的ip。IP预期值:未定义,给定值:127.0.0.1
为什么
这个
在这个上下文中没有定义?甚至有可能做我现在想做的事情吗?我可能错过了一些东西。我刚刚发现使用bind()
我得到了我需要的结果。这是有效的JavaScript吗?我不知道这将如何运行。我使用问题中指定的对象调用函数startSocket
,然后它运行。我看不出这怎么是无效的?socketObject.HandleIncomingPacket(缓冲区,标头){
没有多大意义-看起来你试图定义一个函数,但没有函数
关键字。对不起,我在复制粘贴时意外删除了太多。修复了