5. Intermediari (Intermediaries)
Un client potrebbe essere interessato a una risorsa nello spazio dei nomi di un server che viene raggiunto attraverso una catena di uno o più intermediari CoAP. In questo caso, il client registra il proprio interesse presso il primo intermediario verso il server, agendo come se stesse comunicando con il server stesso, come specificato nella Sezione 3. È compito di questo intermediario fornire al client una rappresentazione corrente della risorsa di destinazione e mantenere questa rappresentazione aggiornata in caso di modifiche allo stato della risorsa, come specificato nella Sezione 4.
Per eseguire questo compito, l'intermediario DOVREBBE utilizzare il protocollo specificato in questo documento, assumendo il ruolo del client e registrando il proprio interesse per la risorsa di destinazione presso l'hop successivo verso il server. Se la risposta restituita dall'hop successivo non include un'opzione Observe, l'intermediario PUÒ ricorrere al polling dell'hop successivo o PUÒ restituire esso stesso una risposta senza un'opzione Observe.
La comunicazione tra ogni coppia di hop è indipendente; ogni hop nel ruolo di server DEVE determinare individualmente quante notifiche inviare, di quale tipo di messaggio e così via. Ogni hop DEVE generare i propri valori per l'opzione Observe nelle notifiche e DEVE impostare il valore dell'opzione Max-Age in base all'età della rappresentazione locale corrente.
Se due o più client hanno registrato il loro interesse per una risorsa presso un intermediario, l'intermediario DEVE registrarsi una sola volta presso l'hop successivo e distribuire le notifiche che riceve a tutti i client registrati. Ciò solleva l'hop successivo dall'invio delle stesse notifiche più volte e consente quindi la scalabilità.
Un intermediario non è tenuto ad agire per conto di un client per osservare una risorsa; un intermediario PUÒ osservare una risorsa, ad esempio, solo per mantenere aggiornata la propria cache.
Vedere l'Appendice A.2 per esempi.