CoAP学习笔记——服务器端繁忙时的处理请求流程

原文链接

更多CoAP文章请参考博文索引——【物联网学习笔记——索引博文

根据前面的文章可以看出,CoAP是一个简单的请求响应机制,对于一个给定的请求便有一个相应的响应。
很多时候,如果服务器不能立即响应一个CON请求,服务器只能返回一个空应答,这个空应答使得客户端停止重传CoAP请求。但是一些时间过去之后,服务器端准备好了上一个CON请求的响应,此时服务器向客户端发送一个CON请求,该CON请求需要客户端确认。在服务器侧,此时发送的CON请求中的Token标记必须和客户端发送给服务器的CON请求中的Token标记完全一致。这也是Token标志和序列号使用不同的地方。
下面是流程的详细描述:
  1. 客户端发送一个CON请求
  2. 此时服务器无法返回。如果服务器无法迅速响应,客户端会重复发送CON请求。为了避免这种情况,服务器会发送一个空应答。
  3. 当客户端收到了一个空应答,而空应答中的消息ID和CON请求中的消息ID相同,那么客户端可以便会理解,服务此时正忙,会在一定时间之后通过CON请求的方式返回内容。
  4. 当服务器准备好数据时便尝试发送给客户端,服务器会构造一个CON请求并复制原先的CON请求中的Token标记
  5. 客户端收到一个来自服务器的CON请求之后返回一个应答,如果客户端不及时返回应答,服务器会认为上一个CON请求丢失并会尝试重新发送CON请求。

你可能感兴趣的:(CoAP)