我正试图在家庭自动化领域创建一个小的学术项目。我探索了IOT领域的各种协议和标准,发现COAP与我的需求非常接近。
目的很简单:在家里有一个外围设备(如灯泡、温度传感器等),充当COAP服务器并公开某些资源和服务。由于COAP使用类似于web的寻址方案,任何具有此服务器地址的客户端都应该能够与此COAP服务器(即外围设备)对话并控制其属性。
对于与服务器不在同一个LAN中的客户端如何能够发现此服务器及其所暴露的资源,我有一定的怀疑。我理解COAP使用CoRE链接格式促进资源发现,但它似乎主要使用只能在局域网内工作的多播。我不想把资源目录服务器放在家里,把各种COAP服务器注册到它,然后这个目录服务器与云中的服务器对话。我希望能够在家中安装一个外围设备,它可以通过wifi家庭网络与远程客户端(如铜)通信。但是,考虑到COAP服务器将位于私有IP地址上,如何从远程位置发现坐在家中的COAP服务器,然后与其交谈。这真的有可能只使用COAP吗?
发布于 2018-07-25 12:44:15
当您坐在NAT后面时,这既不允许直接发现,也不允许连接;CoAP不会试图神奇地刺穿它。
最受欢迎的出路是:
对于代理和IPv6情况,仍然可以在本地网络中运行资源目录。这不需要连接到任何云服务,也不需要接受任何云服务的注册,但它可以帮助您完成您想要使用多播进行的发现,但由于移动设备太远而无法完成。资源目录和代理都应该配置为不与本地网络以外的设备对话,除非它们已经过身份验证。
发布于 2018-04-06 12:56:46
让路由器接受HTTP请求,并在您的系统中运行HTTP代理,通过您的IP思想HTTP代理访问您的CoAP设备。
https://stackoverflow.com/questions/37244579
复制相似问题