工业互联网通信与网络技术解析
1. CoAP观察者模式
在物联网应用中,高效地从受限设备获取资源至关重要,CoAP(Constrained Application Protocol)协议为此提供了良好的解决方案。然而,很多时候我们不仅需要获取资源,还希望对传感器的行为进行实时监控。
例如,对于一个温度传感器,若采用轮询的方式来检测温度变化,效率往往较低。更好的方式是让传感器在温度发生变化时主动通知客户端,这就是CoAP的观察者模式。它借鉴了经典的观察者设计模式,类似于发布 - 订阅系统。不过,CoAP的观察者模式只提供尽力而为的机制,这意味着客户端不一定能与服务器的状态保持完全同步,但最终会实现同步。
客户端若要注册为观察者,只需在请求中包含“observe”选项。该选项有一个字段,用于指定是进行注册还是取消之前的注册。如果服务器支持观察者模式,在响应请求时也会包含“observe”选项。对于响应消息,该选项一方面表示注册成功,另一方面表明这是服务器向客户端发送的通知。通知中包含一个编号,客户端可据此确定通知的顺序,避免因网络延迟导致旧通知晚于新通知到达而造成的顺序混乱。
当观察者订阅的资源发生变化时,服务器会向所有订阅者发送通知。为减轻服务器的状态管理负担,所有通知可以采用非确认(NON - confirmable)的方式发送,即服务器发送数据包后即可从内存中删除相关数据。
以温度传感器为例,我们可能不仅关心温度是否升高了一度,更关注传感器是否进入或离开某个临界区域。这可以通过不同的资源来实现。例如,服务器可以实现一个资源 coap://server/temperature ,每当传感器读取到新的温度值时,该
超级会员免费看
订阅专栏 解锁全文
1204

被折叠的 条评论
为什么被折叠?



