#coap #iot #coap-server #no-alloc

无std coap-message

CoAP消息接口

16个版本

0.3.2 2024年5月20日
0.3.1 2024年1月16日
0.2.3 2022年9月22日
0.2.2 2022年2月25日
0.1.0 2020年10月22日

#183无标准库

Download history 997/week @ 2024-05-04 1905/week @ 2024-05-11 2048/week @ 2024-05-18 3537/week @ 2024-05-25 2439/week @ 2024-06-01 1974/week @ 2024-06-08 2280/week @ 2024-06-15 2952/week @ 2024-06-22 2642/week @ 2024-06-29 2418/week @ 2024-07-06 1814/week @ 2024-07-13 1557/week @ 2024-07-20 1512/week @ 2024-07-27 1828/week @ 2024-08-03 1849/week @ 2024-08-10 4688/week @ 2024-08-17

10,091 每月下载量
19 个包中使用 (18 直接使用)

MIT/Apache

36KB
185

Build Status Maintenance

coap-message

CoAP消息抽象

此包定义了可读和可写CoAP消息的接口,这些消息用于物联网中在表示(REST)中传输状态。通过这些接口,允许独立于用于序列化和反序列化消息到协议的实际CoAP库编写CoAP服务器和客户端。

定义的特质仅覆盖CoAP在请求/响应交换级别的属性,而不覆盖特定传输的细节。特别是,它们不公开令牌、消息ID或消息类型:在某些传输中甚至不存在,通常库也不需要公开它们。同样,没有描述分配消息的方法:对于受限设备,这可能甚至不可能,而对于支持多种配置传输的CoAP库,分配的消息类型可能很容易取决于预期用途。它们也不覆盖远程地址,因为这些也是特定传输的。

该包还提供了一些类型的简单实现:[Code] for [u8],以及 [OptionNumber] for [u16]。

用法

更多示例和演示可以在coap-message-demos中找到,它说明了如何构建基于coap-message的处理程序,以及如何在实践中使用不同的CoAP实现来使用它们。其中大多数应用程序都通过coap-handler中的实现使用coap-message,这些实现为常见情况提供了快捷方式。

如果您是消息特质的实现方,您可能想看看coap-message-utils,它包含了一些有用的构建块。

错误处理

可读的消息类型设计有最小故障可能性——例如,遍历选项不能引发“消息过早结束”风格的错误,有效载荷始终“存在”(尽管可能是空的)。这编码了消息类型意味着消息有效性的概念。

坚持最小化解析循环消耗的库(如嵌入式系统中的典型情况)可以选择将格式错误表示为关键、不安全转发选项(例如,私有使用编号65535)。因为消费者在预先检查消息时必须检查所有选项,所以在执行消息之前确保错误不会被忽略。

可写消息的操作可能失败。典型的错误原因是在传输可以携带的消息大小(UDP上的路径MTU或TCP上对等方的Max-Message-Size)或分配的缓冲区大小溢出。由于某些功能(例如,未实现所有选项或代码)的实现可能导致错误,因此在尝试使用之前可以检查这些错误,因为它们使用关联的[Code]和[OptionNumber]类型,这些类型是可能失败的。

许可:MIT OR Apache-2.0

依赖项

~155KB