【发布时间】:2016-05-15 22:58:56
【问题描述】:
我正在尝试在家庭自动化领域创建一个小型学术项目。我探索了物联网领域的各种协议和标准,发现 COAP 符合我的要求。
目的很简单:在家中安装一个外围设备(如灯泡、温度传感器等),充当 COAP 服务器并公开某些资源和服务。由于 COAP 使用类似于 web 的寻址方案,因此任何具有此服务器地址的客户端都应能够与此 COAP 服务器(即外围设备)通信并控制其属性。
我对不存在于与服务器相同的局域网中的客户端如何发现该服务器及其暴露的资源有一些疑问。我知道 COAP 使用 CoRE 链接格式促进资源发现,但似乎它主要使用只能在 LAN 内工作的多播。我不想把资源目录服务器放在家里,各种 COAP 服务器向它注册,然后这个目录服务器与云中的服务器通信。我希望能够在家中安装一个外围设备,该外围设备可以使用 wifi 家庭网络与远程客户端(如 COPPER)通信。但是如何从远程位置发现位于家中的 COAP 服务器,然后考虑到 COAP 服务器将位于私有 IP 地址上,然后与它交谈。 仅使用 COAP 真的可以吗?
【问题讨论】:
-
我不确定问题是什么,您是否要扫描多个房屋并寻找传感器,因此您不知道谁有传感器,谁没有,或者您的客户是先入为主的知识服务器的位置(公共 IP)
-
我不想扫描多个房屋。我想自动化一个家庭,并且设备必须可以远程访问。我想使用 COAP 连接设备和云服务器。似乎 COAP 主要用于通过 LAN 而不是 WAN 访问。这是正确的吗?
-
不,CoAP 是应用层协议,位于 UDP/DTLS、TCP/TLS 之上。所以 wan 应该不是问题,它遵循 REST 范式,它使用 URI 来定义资源并且是完全双向的。同样重要的是要知道设备可以同时作为“客户端和服务器”的方式。因此,设备可以首先联系外部主机。如果这是您要问的,我可以在答案中复述一下?
-
@simon:您是说先从设备打开到服务器的连接,以便在 NAT 服务器中创建映射吗?但是,如果设备不使用通道,这种映射会持续多久?
-
是的,这就是我的意思,对于映射寿命,这将取决于您的中间框配置。
标签: networking cloud iot home-automation coap