MQTT是多對多通訊協議用于在不同客戶端之間通過中間代理傳送消息,解耦生產者與消費者,通過使得客戶端發布,讓代理決定路由并且拷貝消息。雖然MQTT支持一些持久化,最好還是作為實時數據通訊總線。
CoAP主要是一個點對點協議,用于在客戶端與服務器之間傳輸狀態信息。雖然支持觀察資源,CoAP最好適合狀態傳輸模型,不是完全基于事件。
MQTT客戶端建立長連接TCP,這通常表示沒有問題,CoAP客戶端與服務器都發送與接收UDP數據包,在NAT環境中,隧道或者端口轉發可以用于允許CoAP,或者像LWM2M,設備也許會先初始化前端連接。
MQTT不提供支持消息打類型標記或者其他元數據幫助客戶端理解,MQTT消息可用于任何目的,但是所有的客戶端必須知道向上的數據格式以允許通訊,CoAP,相反地,提供內置支持內容協商與發現,允許設備相互探測以找到交換數據的方式。