3

我们有一个在本地网络内运行的设备,一个 californium 服务器在网络外的另一台机器上运行。服务器IP是公共IP。要求是当服务器收到来自设备的请求时,服务器应向设备发送 GET 请求。我们这里面临的问题是 - 当设备向服务器发送请求时,服务器看不到设备的内部 IP,服务器只能看到设备的外部 IP(网络的公共 IP)。因此,服务器从请求中捕获 IP 和 PORT 号并创建单独的 get 请求,为其设置 IP 和端口并将请求发送到设备。该请求仅到达网络的公共 IP,无法到达设备。

另一件事是,当服务器向设备发送捎带支持的响应时,响应会到达设备,而不是在设备的公共 IP 处被阻止。我正在使用以下代码向设备发送搭载响应:

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

}

提前致谢 ...

4

1 回答 1

1

如果您在 30 秒内将消息发送回客户端,这应该可以工作。这就是我们使用 leshan http://github.com/eclipse/leshan所做的。它使用 Californium 来实现轻量级 M2M,它的工作方式与您想要实现的一样。

于 2014-11-23T15:41:24.043 回答