我正在努力在家庭自动化领域创建一个小型学术项目。我在IOT域中探索了各种协议和标准,并找到了符合我要求的COAP。
意图非常简单:在家中安装外围设备(如灯泡,温度传感器等),充当COAP服务器并暴露某些资源和服务。由于COAP使用类似于web的寻址方案,因此具有该服务器地址的任何客户端都应能够与该COAP服务器(即外围设备)通信并控制其属性。
我对客户端与服务器不在同一个局域网中的方式有一些疑问,可以发现这个服务器以及它所暴露的资源。我知道COAP使用CoRE链接格式促进了资源发现,但它似乎主要使用只能在局域网内工作的多播。我不想把资源目录服务器放在家里和各种COAP服务器注册它,然后这个目录服务器与位于云端的服务器通信。我希望能够在家中安装外围设备,可以使用wifi家庭网络与远程客户端(如COPPER)进行通信。但是,考虑到COAP服务器将位于私有IP地址,如何从远程位置发现坐在家中的COAP服务器然后与之通信。 仅使用COAP真的可以吗?
答案 0 :(得分:1)
当您坐在NAT后面时,既不允许直接发现也不允许连接; CoAP不会试图神奇地刺穿它。
受欢迎的出路是:
对于代理和IPv6情况,您仍然可以在本地网络中运行资源目录。这既不需要连接到任何云服务,也不需要从任何云服务接受注册,但是它可以帮助您发现自己想对多播进行的发现,但由于移动设备距离太远而不能这样做。资源目录和代理都应配置为除非经过身份验证,否则不与本地网络外部的设备对话。
答案 1 :(得分:0)
让您的路由器接受HTTP请求,并在您的系统中运行HTTP到CoAP代理,通过您的IP思想HTTP-CoAP代理访问您的CoAP设备。