2015-01-27 7 views
0

현재 NodeJS를 사용 중이고 여러 개의 udp4 소켓 배열을 만들고 싶습니다.어떤 UDP 소켓이 패킷을 수신하는지 추적하십시오.

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} 객체와 함수를 호출 :이 메시지를 수신하고, 그래서 다음과 같이 내가 모든 것을 저장하는 것을 시도하고있는 소켓 나에게 중요하지만 들어오는 패킷에, I 다음 출력을 수신하십시오. ID: undefined | wrong IP. IP expected: undefined, given: 127.0.0.1

어떻게 this이이 컨텍스트에서 정의되지 않았습니까? 내가 지금하려는 것처럼 할 수있는 일이 가능한가? 나는 아마 뭔가를 놓치고있어.

+0

이 정보는 유효한 JavaScript입니까? 어떻게 될지 모르겠다. –

+0

나는 내 질문에 지정된대로 객체와 함께 'startSocket' 함수를 호출하고 실행합니다. 이게 어떻게 잘못 됐는지 나는 모르겠다. –

+0

'socketObject.HandleIncomingPacket (buffer, header) {'는별로 의미가 없습니다. 여러분이 함수를 정의하려는 것처럼 보이지만'function' 키워드는 없습니다. –

답변

0

나는 단지 bind()을 사용하여 내가 필요한 결과를 얻는다는 것을 알았습니다.

관련 문제