上回说到Web manage的构建,完成的对产品,物模型中的数据,设备数据,并把对应的数据缓存到redis中,接下来就开始coap客户端和服务器的构建。
coap
现阶段PC网络交互中较多的是使用tcp和http协议,但物联网设备都要求较小的功耗、较小的带宽,并且CPU、内存都是有限的,所以在这种需求下,http相对就不实用了,因为http相对臃肿,而CoAP是受限制的应用协议(Constrained Application Protocol)的代名词(百度百科),CoAp和http一样都是应用层的协议,并且它是一种类http协议,相同的如请求响应模式,url方式,请求方法(做了缩减),响应码(做了简化),不同的是CoAp是基于UDP的,可以双向通信(既是客户端又是服务端),并且CoAp协议非常的小,最小的数据包仅为4k。
coap报文
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