CoAP学习笔记——CoAP资源发现

原文链接
(2015年4月15日,ct表述错误,待修改)
更多CoAP文章请参考博文索引——【物联网学习笔记——索引博文
CoAP协议专门为M2M通信设计(设备间通信),在设备通信过程中很少会有人的干预。为了实现在没有人干预的情况下正常工作,CoAP提供了资源发现机制。这就是的客户端理解哪些URI是被支持,并且客户端可以获知该URI的具体含义。
CoAP协议建议,服务器端应该支持一个/.well-known/core,该URI可以被任何客户端访问。一个专门用于资源发现的服务器必须侦听默认的5683端口。
当客户端请求该预先协商好的URI时,服务器返回一系列的URI。这些URI遵循CoRE链接标准。[A simplistic view of the specification is outlined in this post. The content-type of the response that contains the list of resources in “CoRE Link Format” is “application/link-format”.] 这是一个新引入的类型,不过不必担心该新类型易于被理解和执行。
CoRE链接标准定义了非常多的选项,但是其中的很多部分并没有被我们深入的理解,所以在设计代码的工程中我们进行了适当的简化,只指出了部分选项。
如果访问预先协商好的URI /.well-known/core,将会获得以下形式的响应:

<sensors/temp>;sz=512;title=Temperature Sensor;ct=50,<actuators/jack>;sz=256;title=Hydraulic Jacks;ct=50

上面的例子可以帮助我们深入理解服务器如何告诉客户端此处有哪些资源可以利用,通过这个例子可以获得以下信息:
  • 有一个URI为“sensors/temp”的设备,该设备的名称为“温度传感器”。有效载荷的内容类型为50字节(application/json,JSON格式)。当使用一个GET方法访问资源时,最小消息的长度为512字节。
  • 除了温度之外还有另外一个资源,通过上面的例子可以发现资源和资源之间通过逗号分隔,该资源的URI为actuators/jack,该资源的名称为液压千斤顶,如果使用GET方法访问该资源的话,那么最大的数据包大小为256字节。有效载荷内容的大小为50字节(application/json,格式)。
除了这些之外,我们鼓励多多阅读 CoRE标准方面的文档,如果你有更好的理解的话,也请发表博客分享你的知识。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CoAP (Constrained Application Protocol) 是一种面向物联网的应用层协议,它是专门为受限设备和网络设计的轻量级协议。Spring Boot 是一个快速开发 Web 应用程序的框架,它提供了很多开箱即用的功能。在 Spring Boot 中整合 CoAP 可以让我们更方便地开发物联网应用程序。 下面是整合 CoAP 的步骤: 1. 添加依赖 在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>org.eclipse.californium</groupId> <artifactId>californium-core</artifactId> <version>2.0.0-M3</version> </dependency> <dependency> <groupId>org.eclipse.californium</groupId> <artifactId>californium-proxy</artifactId> <version>2.0.0-M3</version> </dependency> ``` 这些依赖将帮助我们使用 CoAP 协议。 2. 创建 CoapServer 创建一个 CoapServer 类,并添加 @Configuration 和 @EnableCoapServer 注解,示例如下: ``` @Configuration @EnableCoapServer public class CoapServerConfig { @Bean public CoapServer coapServer() { return new CoapServer(); } } ``` 3. 创建资源 创建一个 CoapResource 类,并添加 @Component 注解,示例如下: ``` @Component public class MyResource extends CoapResource { public MyResource() { super("myResource"); } @Override public void handleGET(CoapExchange exchange) { exchange.respond("Hello, CoAP!"); } } ``` 这个资源将会响应 GET 请求,并返回 "Hello, CoAP!"。 4. 注册资源CoapServer 类中,将资源注册到服务器上,示例如下: ``` @Configuration @EnableCoapServer public class CoapServerConfig { @Bean public CoapServer coapServer() { CoapServer server = new CoapServer(); server.add(new MyResource()); return server; } } ``` 5. 运行服务器 创建一个 main 方法,并运行服务器,示例如下: ``` @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } } ``` 现在,你可以使用 CoAP 协议通过访问 "coap://localhost:5683/myResource" 来访问资源了。 以上就是整合 CoAP 的步骤。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值