【问题标题】:How to send a GET request from a coap server to a device running outside of local network?如何将 GET 请求从 coap 服务器发送到在本地网络之外运行的设备?
【发布时间】:2014-11-22 11:03:18
【问题描述】:

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

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

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

}

提前谢谢...

【问题讨论】:

    标签: java jakarta-ee networking network-protocols coap


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      相关资源
      最近更新 更多