首页 文章

使用coap进行远程资源发现

提问于
浏览
0

我正在努力在家庭自动化领域创建一个小型的学术项目 . 我在IOT域中探索了各种协议和标准,并找到了符合我要求的COAP .

目的非常简单:在家中使用外围设备(如灯泡,温度传感器等),充当COAP服务器并暴露某些资源和服务 . 由于COAP使用类似于web的寻址方案,因此具有该服务器地址的任何客户端都应能够与该COAP服务器(即外围设备)通信并控制其属性 .

我对客户端与服务器不在同一个局域网中的方式有一些疑问,可以发现这个服务器以及它所暴露的资源 . 我知道COAP使用CoRE链接格式促进了资源发现,但它似乎主要使用只能在局域网内工作的多播 . 我不想把资源目录服务器放在家里和各种COAP服务器注册它,然后这个目录服务器与位于 Cloud 端的服务器通信 . 我希望能够在家中安装外围设备,可以使用wifi家庭网络与远程客户端(如COPPER)进行通信 . 但是,考虑到COAP服务器将位于私有IP地址,如何从远程位置发现坐在家中的COAP服务器然后与之通信 . 使用COAP真的可以吗?

2 回答

  • 0

    当你坐在NAT后面时,既不允许直接发现也不允许连接; CoAP不会试图神奇地刺穿它 .

    流行的出路是:

    • 使用IPv6(无需使用NAT)和(至少有选择地)禁用防火墙 . 您仍然只能在本地进行发现,但一旦发现,您就可以从任何地方连接到您的设备 .

    • 使用VPN使您的移动设备就像在NAT中一样 .

    • 在路由器上运行CoAP代理,并向外部打开一个端口,并告诉您的移动设备通过该代理连接 . 这也不会给你本地发现 .

    对于代理和IPv6情况,您仍然可以在本地网络中运行资源目录 . 这既不需要连接也不接受来自任何 Cloud 服务的注册,但它可以帮助您进行您想要进行多播的发现,但不能因为您的移动设备距离太远 . 资源目录和代理都应该是可配置的,以便不与本地网络外的设备通信,除非它们经过身份验证 .

  • 1

    让您的路由器接受HTTP请求,并在您的系统中运行HTTP到CoAP代理,通过您的IP思想HTTP-CoAP代理访问您的CoAP设备 .

相关问题