java实现coap协议源码_原 分布式项目(三)CoAp

本文介绍了在物联网场景中,由于资源限制,CoAP协议相对于HTTP的优势。详细解析了CoAP协议的基本结构,包括报文类型、选项、请求方法等。通过使用californium-core库,展示了如何用Java构建CoAP客户端和服务器,实现数据的发送和接收,并将接收到的数据发送到Kafka进行进一步处理。
摘要由CSDN通过智能技术生成

上回说到Web manage的构建,完成的对产品,物模型中的数据,设备数据,并把对应的数据缓存到redis中,接下来就开始coap客户端和服务器的构建。

coap

现阶段PC网络交互中较多的是使用tcp和http协议,但物联网设备都要求较小的功耗、较小的带宽,并且CPU、内存都是有限的,所以在这种需求下,http相对就不实用了,因为http相对臃肿,而CoAP是受限制的应用协议(Constrained Application Protocol)的代名词(百度百科),CoAp和http一样都是应用层的协议,并且它是一种类http协议,相同的如请求响应模式,url方式,请求方法(做了缩减),响应码(做了简化),不同的是CoAp是基于UDP的,可以双向通信(既是客户端又是服务端),并且CoAp协议非常的小,最小的数据包仅为4k。

coap报文

f096134bf4b970096418d08e8f9a15ce.png

Var:版本编号

T:报文类型,coap定义了4种报文类型

CON:需要确认的消息,可实现可靠性传输

NON:不要确认的消息,消息传输不可靠

ACK:确认应到消息,与CON对象

RST:复位,要求消息重传

TKL:标识符长度,CoAp定义了两种标识符,Message Id(必须)和Token(非必须)

Code:响应码,如4.04,5.00,和http中的404、500功能类似

Message Id:报文编号

Token:标识符具体的内容

Option:可选选项参数,一个或多个,可设置Uri-Host、Uri-Port、Uri-Path和Uri-Query,CoAp对Option定了3部分

Delta:当前Option的编号,等于前面所有Option delta的总和

Length:表示value部分具体的长度

value:当前Option承载的具体内容

1111 1111B:报文与所承载的数据分隔符

Payload:所承载的数据实体

请求方法

请求方法和http类似,coap定义了4种请求方式

get:获取资源

post:创建资源

put:更新资源

delete:删除资源

coap数据格式

和http类似,用户定义所承载的数据的具体格式,如text/html,application/json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值