A protocol binding defines how you transport Ditto Protocol messages over a specific network protocol (e.g., “Ditto Protocol over WebSocket”).
TL;DR: Ditto supports seven protocol bindings – WebSocket, AMQP 1.0, AMQP 0.9.1, MQTT 3.1.1, MQTT 5, HTTP 1.1, and Kafka 2.x. Each binding maps Ditto Protocol JSON messages to its transport format.
Overview
Each binding specifies rules for mapping Ditto Protocol messages to transport-specific messages and back. The Ditto Protocol message format stays the same; only the transport wrapper changes.
Supported bindings
| Binding | Documentation |
|---|---|
| WebSocket | WebSocket binding |
| AMQP 1.0 | AMQP 1.0 binding |
| AMQP 0.9.1 | AMQP 0.9.1 binding |
| MQTT 3.1.1 | MQTT 3.1.1 binding |
| MQTT 5 | MQTT 5 binding |
| HTTP 1.1 | HTTP 1.1 binding |
| Kafka 2.x | Kafka 2.x binding |
Content type
When you send messages that are already in Ditto Protocol format, specify this content type in the transport-specific way:
application/vnd.eclipse.ditto+json
All change notifications emitted by Ditto also carry this content type.
For messages that are not yet in Ditto Protocol format, use payload mapping in Ditto’s connectivity service to transform them.
Further reading
- Protocol overview – introduction to the Ditto Protocol
- Protocol specification – the full message format reference
- Payload mapping – transforming non-Ditto messages