服务器端繁忙时的处理请求流程

根据前面的介绍可以看出,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请求。
QR Code
QR Code iot:coap_server_busy (generated for current page)