What is CoAP Protocol?
CoAP-Constrained Application Protocol is a specialized Internet Application Protocol for constrained devices, as defined in RFC 7252. It enables devices to communicate over the Internet. It is defined as Contrained Application Protocol, and is a protocol intended to be used in very simple hardware. The protocol is especially targeted for constrained hardware such as 8-bits microcontrollers, low power sensors and similar devices that can’t run on HTTP or TLS. It is a simplification of the HTTP protocol running on UDP, that helps save bandwidth. It is designed for use between devices on the same constrained network (e.g., low-power, lossy networks), between devices and general nodes on the Internet, and between devices on different constrained networks both joined by an internet. CoAP is also being used via other mechanisms, such as SMS on mobile communication networks.
The Internet Engineering Task Force Constrained RESTful environments (IETF CoRE) Working Group has done the major standardization work for CoAP. The core of the protocol is specified in RFC 7252, which means that CoAP is still not a standard protocol.
Two new features designed specifically for Internet of Things and M2M are:
- Observe at new events happened on sensors or actuators.
- Device management and discoverability from external devices.
When to use
Some of the specific cases in which CoAP are useful are:
- Your hardware cannot run HTTP or TLS: If this is the case then running CoAP and DTLS can practically do the same as HTTP. If one is an expert on HTTP APIs, then the migration will be simple. You receive GET for reading and POST, PUT and DELETE for mutations and the security runs on DTLS.
- Your hardware uses battery: If this is ones problem then running CoAP will improve the battery performance when compared with HTTP over TCP/IP. UDP saves some bandwidth and makes the protocol more efficient.
- A subscription is necessary: If one cannot run MQTT and HTTP polling is impossible then CoAP is a solution
You may like also : MQTT Public Brokers List
You may like also: How To Create Secure MQTT Broker
Use Coap with NodeJS
node-coap is a client and server library for CoAP modeled after the
This library follows:
- draft-18 of CoAP.
- observe-11 for the observe specification.
- block-14 for the blockwise specification.
It does not parse the protocol but it use CoAP-packet instead.
If you need a command line interface for CoAP, check out coap-cli.
node-coap is an OPEN Open Source Project, see the Contributing section to find out what this means.
$ npm install coap --save
The following example opens a UDP server and sends a CoAP message to it:
var coap = = coap server server // the default CoAP port is 5683 server
CoAPprotocol is simple enough to implement from scratch for a simple application. For applications where that is not desirable, generic implementations are becoming available for a variety of platforms. Many of these implementations stay private, but some are published with liberal open-source licenses such as the Apache 2.0 or the MIT license
CoAP Vs. MQTT
An important aspect to cover is the main differences between CoAP and MQTT. you may know, MQTT is another protocol widely used in internet of Things. There are several differences between these two protocols. The first aspect to notice is the different paradigm used. MQTT uses a publisher-subscriber while CoAP uses a request-response paradigm. MQTT uses a central broker to dispatch messages coming from the publisher to the clients. CoAP is essentially a one-to-one protocol very similar to the HTTP protocol. Moreover, MQTT is an event-oriented protocol while CoAP is more suitable for state transfer.
You may like also: