2014-11-22 1 views
3

우리는 로컬 네트워크 내부에서 실행되는 장치를 가지고 있으며 californium 서버는 네트워크 외부의 별도 시스템에서 실행됩니다. 서버 IP는 공개 IP입니다. 요구 사항은 서버가 장치로부터 요청을 수신 할 때 서버가 장치에 GET 요청으로 응답해야한다는 것입니다. 여기서 우리가 직면하고있는 문제 - 를 장치가 서버에 요청을 보낼 때, 서버가 장치의 외부 IP를 볼 수있는 서버는 수, 장치의 내부 IP를 볼 수 없었다 (네트워크의 공공 IP) . 따라서 서버는 요청에서 IP 및 PORT 번호를 캡처하고 별도의 get 요청을 작성하여 IP 및 포트를 설정하고 요청을 장치로 전송합니다. 요청은 네트워크의 공용 IP 주소에만 도달하여 장치에 연결할 수 없습니다. 서버가 공용 IP로 메시지를 보내는 대신 장치에 GET 요청을 보낼 수있는 방법이 있습니까?GAP 요청을 coap 서버에서 로컬 네트워크 외부에서 실행중인 장치로 보내는 방법은 무엇입니까?

한가지 더는 서버가 장치에 응답을 뒷받침 돼지를 보낼 때, 응답이 장치에 도달하는 대신 장치의 공공 IP에서 차단된다. 나는 다음과 같은 코드를 사용하여 장치에 피기 응답을 보내는 해요 : 사전에

handleGET(CoapExchange exchange){ 
    exchange.respond(""); //respnoding with empty payload 

} 

감사합니다 ...

답변

1

당신이 30 초 이내에 다시 클라이언트로 메시지를 보낼 경우이 작동합니다. 그것은 leshan http://github.com/jvermillard/leshan으로 우리가하는 것입니다. Lightweight M2M을 구현하기 위해 Californium을 사용하고 있으며 달성하려는 목표와 비슷하게 작동합니다.

관련 문제