blob: e6d367945296aca5c9a6ea95e5ca8f32c854c3ec [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content=" ">
<title> Protocol topics • Eclipse Ditto • a digital twin framework</title>
<link rel="stylesheet" href="css/syntax.css">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="css/modern-business.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="css/customstyles.css">
<link rel="stylesheet" href="css/boxshadowproperties.css">
<link rel="stylesheet" href="css/theme-ditto.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/2.0.0/anchor.min.js" crossorigin="anonymous"></script>
<script src="js/toc.js"></script>
<script src="js/customscripts.js"></script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"url": "https://eclipse.org/ditto/",
"logo": "https://eclipse.org/ditto/images/ditto.svg"
}
</script>
<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="images/favicon-96x96.png" sizes="96x96">
<link rel="alternate" type="application/rss+xml" title="Eclipse Ditto Blog" href="https://www.eclipse.org/ditto/feed.xml">
<!-- Eclipse Foundation cookie consent: -->
<link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
<script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
<script>
$(document).ready(function() {
$("#tg-sb-link").click(function() {
$("#tg-sb-sidebar").toggle();
$("#tg-sb-content").toggleClass('col-md-9');
$("#tg-sb-content").toggleClass('col-md-12');
$("#tg-sb-icon").toggleClass('fa-toggle-on');
$("#tg-sb-icon").toggleClass('fa-toggle-off');
});
});
</script>
</head>
<script>
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),
dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>
<body>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container topnavlinks">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-ditto-home" href="index.html">&nbsp;<img src="images/ditto_allwhite_symbolonly.svg" class="ditto-navbar-symbol" alt="Home"> <img src="images/ditto_allwhite_textonly.svg" class="ditto-navbar-symbol-text" alt="Ditto"></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<!-- toggle sidebar button -->
<!--<li><a id="tg-sb-link" href="#"><i id="tg-sb-icon" class="fa fa-toggle-on"></i> Nav</a></li>-->
<!-- entries without drop-downs appear here -->
<li><a href="blog.html">Blog</a></li>
<li><a href="intro-overview.html">Documentation</a></li>
<li><a href="http-api-doc.html">HTTP API</a></li>
<li><a href="https://ditto.eclipse.org" target="_blank">Sandbox</a></li>
<li><a href="https://github.com/eclipse/ditto" target="_blank">GitHub</a></li>
<li><a href="https://github.com/eclipse/ditto-examples" target="_blank">GitHub examples</a></li>
<!-- entries with drop-downs appear here -->
<!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Links<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="https://projects.eclipse.org/projects/iot.ditto" target="_blank">Eclipse Ditto Project</a></li>
<li><a href="https://www.eclipse.org/forums/index.php/f/364/" target="_blank">Forum</a></li>
<li><a href="https://ci.eclipse.org/ditto/" target="_blank">Jenkins</a></li>
<li><a href="https://dev.eclipse.org/mhonarc/lists/ditto-dev/" target="_blank">Mailing list archives</a></li>
<li><a href="https://gitter.im/eclipse/ditto" target="_blank">Gitter.im chat</a></li>
</ul>
</li>
<!--comment out this block if you want to hide search-->
<li>
<!--start search-->
<div id="search-demo-container">
<input type="text" id="search-input" placeholder="search...">
<ul id="results-container"></ul>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/simple-jekyll-search/0.0.9/jekyll-search.js" type="text/javascript"></script>
<script type="text/javascript">
SimpleJekyllSearch.init({
searchInput: document.getElementById('search-input'),
resultsContainer: document.getElementById('results-container'),
dataSource: 'search.json',
searchResultTemplate: '<li><a href="{url}" title="Protocol topics">{title}</a></li>',
noResultsText: 'No results found.',
limit: 10,
fuzzy: true,
})
</script>
<!--end search-->
</li>
</ul>
</div>
</div>
<!-- /.container -->
</nav>
<!-- Page Content -->
<div class="container">
<div id="main">
<!-- Content Row -->
<div class="row">
<!-- Sidebar Column -->
<div class="col-md-3" id="tg-sb-sidebar">
<ul id="mysidebar" class="nav">
<li class="sidebarTitle">
<label for="docVersion">Eclipse Ditto version:</label>
<div class="select-wrapper">
<select id="docVersion" name="docVersion">
<option value="">development</option>
<option value="1.0">1.0</option>
<option value="1.1">1.1</option>
<option value="1.2">1.2</option>
<option value="1.3">1.3</option>
<option value="1.4">1.4</option>
</select>
</div>
<div id="dev-warning">
<div markdown="span" class="alert alert-warning" role="alert" style="font-size:0.6em"><i class="fa fa-warning"></i> <b>Important:</b> This documentation reflects the latest 'development'. You might want to choose a released version.</div>
</div>
</li>
<li class="subfolders">
<a href="#"><span></span>Introduction</a>
<ul>
<li><a href="intro-overview.html">Overview</a></li>
<li><a href="intro-digitaltwins.html">Digital twins</a></li>
<li><a href="intro-hello-world.html">Hello world</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Release Notes</a>
<ul>
<li><a href="release_notes_115.html">1.1.5</a></li>
<li><a href="release_notes_113.html">1.1.3</a></li>
<li><a href="release_notes_112.html">1.1.2</a></li>
<li><a href="release_notes_111.html">1.1.1</a></li>
<li><a href="release_notes_110.html">1.1.0</a></li>
<li><a href="release_notes_100.html">1.0.0</a></li>
<li><a href="release_notes_090.html">0.9.0</a></li>
<li><a href="release_notes_080.html">0.8.0</a></li>
<li class="subfolders">
<a href="#"><span></span>Milestone releases</a>
<ul>
<li><a href="release_notes_100-M2.html">1.0.0-M2</a></li>
<li><a href="release_notes_100-M1a.html">1.0.0-M1a</a></li>
<li><a href="release_notes_090-M2.html">0.9.0-M2</a></li>
<li><a href="release_notes_090-M1.html">0.9.0-M1</a></li>
<li><a href="release_notes_080-M3.html">0.8.0-M3</a></li>
<li><a href="release_notes_080-M2.html">0.8.0-M2</a></li>
<li><a href="release_notes_080-M1.html">0.8.0-M1</a></li>
<li><a href="release_notes_030-M2.html">0.3.0-M2</a></li>
<li><a href="release_notes_030-M1.html">0.3.0-M1</a></li>
<li><a href="release_notes_020-M1.html">0.2.0-M1</a></li>
<li><a href="release_notes_010-M3.html">0.1.0-M3</a></li>
<li><a href="release_notes_010-M1.html">0.1.0-M1</a></li>
</ul>
</li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Installation</a>
<ul>
<li><a href="installation-building.html">Building Ditto</a></li>
<li><a href="installation-running.html">Running Ditto</a></li>
<li><a href="installation-operating.html">Operating Ditto</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Basic concepts</a>
<ul>
<li><a href="basic-overview.html">Overview</a></li>
<li class="subfolders">
<a href="#"><span></span>Model entities</a>
<ul>
<li><a href="basic-thing.html">Thing</a></li>
<li><a href="basic-acl.html">Access Control List (ACL)</a></li>
<li><a href="basic-feature.html">Feature</a></li>
<li><a href="basic-policy.html">Policy</a></li>
<li><a href="basic-namespaces-and-names.html">Namespaces and Names</a></li>
</ul>
</li>
<li><a href="basic-auth.html">Authentication and Authorization</a></li>
<li><a href="basic-messages.html">Messages</a></li>
<li><a href="basic-signals.html">Signals</a></li>
<li class="subfolders">
<a href="#"><span></span>Signal types</a>
<ul>
<li><a href="basic-signals-command.html">Command</a></li>
<li><a href="basic-signals-commandresponse.html">Command response</a></li>
<li><a href="basic-signals-errorresponse.html">Error response</a></li>
<li><a href="basic-signals-event.html">Event</a></li>
</ul>
</li>
<li><a href="basic-apis.html">APIs</a></li>
<li><a href="basic-connections.html">Connections</a></li>
<li><a href="basic-placeholders.html">Placeholders</a></li>
<li><a href="basic-changenotifications.html">Change notifications</a></li>
<li><a href="basic-rql.html">RQL expressions</a></li>
<li><a href="basic-enrichment.html">Signal enrichment</a></li>
<li><a href="basic-search.html">Search</a></li>
<li><a href="basic-acknowledgements.html">Acknowledgements</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Architecture</a>
<ul>
<li><a href="architecture-overview.html">Overview</a></li>
<li class="subfolders">
<a href="#"><span></span>Services</a>
<ul>
<li><a href="architecture-services-policies.html">Policies</a></li>
<li><a href="architecture-services-things.html">Things</a></li>
<li><a href="architecture-services-things-search.html">Things-Search</a></li>
<li><a href="architecture-services-connectivity.html">Connectivity</a></li>
<li><a href="architecture-services-concierge.html">Concierge</a></li>
<li><a href="architecture-services-gateway.html">Gateway</a></li>
</ul>
</li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>HTTP API</a>
<ul>
<li><a href="httpapi-overview.html">Overview</a></li>
<li><a href="httpapi-concepts.html">Concepts</a></li>
<li><a href="httpapi-search.html">Search</a></li>
<li><a href="httpapi-messages.html">Messages</a></li>
<li><a href="httpapi-protocol-bindings-websocket.html">WebSocket protocol binding</a></li>
<li><a href="httpapi-sse.html">Server sent events</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Connectivity API</a>
<ul>
<li><a href="connectivity-overview.html">Overview</a></li>
<li><a href="connectivity-manage-connections.html">Manage connections</a></li>
<li><a href="connectivity-protocol-bindings-amqp091.html">AMQP 0.9.1 protocol binding</a></li>
<li><a href="connectivity-protocol-bindings-amqp10.html">AMQP 1.0 protocol binding</a></li>
<li><a href="connectivity-protocol-bindings-mqtt.html">MQTT 3.1.1 protocol binding</a></li>
<li><a href="connectivity-protocol-bindings-mqtt5.html">MQTT 5 protocol binding</a></li>
<li><a href="connectivity-protocol-bindings-http.html">HTTP 1.1 protocol binding</a></li>
<li><a href="connectivity-protocol-bindings-kafka2.html">Kafka 2.x protocol binding</a></li>
<li><a href="connectivity-mapping.html">Payload mapping</a></li>
<li><a href="connectivity-header-mapping.html">Header mapping</a></li>
<li><a href="connectivity-tls-certificates.html">TLS certificates</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Client SDK</a>
<ul>
<li><a href="client-sdk-overview.html">Overview</a></li>
<li><a href="client-sdk-java.html">Java</a></li>
<li><a href="client-sdk-javascript.html">JavaScript</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>Ditto Protocol</a>
<ul>
<li><a href="protocol-overview.html">Overview</a></li>
<li><a href="protocol-twinlive.html">Twin/live channel</a></li>
<li><a href="protocol-specification.html">Specification</a></li>
<li><a href="protocol-specification-topic.html">Protocol topic</a></li>
<li><a href="protocol-specification-things.html">Things group</a></li>
<li class="subfolders">
<a href="#"><span></span>→ commands/events</a>
<ul>
<li><a href="protocol-specification-things-create-or-modify.html">Create/Modify</a></li>
<li><a href="protocol-specification-things-retrieve.html">Retrieve</a></li>
<li><a href="protocol-specification-things-delete.html">Delete</a></li>
<li><a href="protocol-specification-acks.html">Acknowledgements</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>→ search/messages</a>
<ul>
<li><a href="protocol-specification-things-search.html">Search</a></li>
<li><a href="protocol-specification-things-messages.html">Messages</a></li>
</ul>
</li>
<li><a href="protocol-specification-policies.html">Policies group</a></li>
<li class="subfolders">
<a href="#"><span></span>→ commands/events</a>
<ul>
<li><a href="protocol-specification-policies-create-or-modify.html">Create/Modify</a></li>
<li><a href="protocol-specification-policies-retrieve.html">Retrieve</a></li>
<li><a href="protocol-specification-policies-delete.html">Delete</a></li>
</ul>
</li>
<li><a href="protocol-bindings.html">Bindings</a></li>
<li><a href="protocol-examples.html">Examples</a></li>
<li class="subfolders">
<a href="#"><span></span>→ Things examples</a>
<ul>
<li><a href="protocol-examples-creatething.html">Create a Thing</a></li>
<li><a href="protocol-examples-deletething.html">Delete a Thing</a></li>
<li><a href="protocol-examples-modifything.html">Modify a Thing</a></li>
<li><a href="protocol-examples-retrievething.html">Retrieve a Thing</a></li>
<li><a href="protocol-examples-retrievethings.html">Retrieve multiple Things</a></li>
<li><a href="protocol-examples-modifypolicyid.html">Modify the Policy ID of a Thing</a></li>
<li><a href="protocol-examples-createattributes.html">Create Attributes</a></li>
<li><a href="protocol-examples-deleteattributes.html">Delete Attributes</a></li>
<li><a href="protocol-examples-modifyattributes.html">Modify Attributes</a></li>
<li><a href="protocol-examples-retrieveattributes.html">Retrieve Attributes</a></li>
<li><a href="protocol-examples-createattribute.html">Create a single Attribute</a></li>
<li><a href="protocol-examples-deleteattribute.html">Delete a single Attribute</a></li>
<li><a href="protocol-examples-modifyattribute.html">Modify a single Attribute</a></li>
<li><a href="protocol-examples-retrieveattribute.html">Retrieve a single Attribute</a></li>
<li><a href="protocol-examples-createthingdefinition.html">Create a Definition</a></li>
<li><a href="protocol-examples-deletethingdefinition.html">Delete a Definition</a></li>
<li><a href="protocol-examples-modifythingdefinition.html">Modify a Definition</a></li>
<li><a href="protocol-examples-retrievethingdefinition.html">Retrieve a Definition</a></li>
<li><a href="protocol-examples-createfeatures.html">Create Features</a></li>
<li><a href="protocol-examples-deletefeatures.html">Delete Features</a></li>
<li><a href="protocol-examples-modifyfeatures.html">Modify Features</a></li>
<li><a href="protocol-examples-retrievefeatures.html">Retrieve Features</a></li>
<li><a href="protocol-examples-createfeature.html">Create a single Feature</a></li>
<li><a href="protocol-examples-deletefeature.html">Delete a single Feature</a></li>
<li><a href="protocol-examples-modifyfeature.html">Modify a single Feature</a></li>
<li><a href="protocol-examples-retrievefeature.html">Retrieve a single Feature</a></li>
<li><a href="protocol-examples-createdefinition.html">Create Feature Definition</a></li>
<li><a href="protocol-examples-deletedefinition.html">Delete Feature Definition</a></li>
<li><a href="protocol-examples-modifydefinition.html">Modify Feature Definition</a></li>
<li><a href="protocol-examples-retrievedefinition.html">Retrieve Feature Definition</a></li>
<li><a href="protocol-examples-createproperties.html">Create Feature Properties</a></li>
<li><a href="protocol-examples-deleteproperties.html">Delete Feature Properties</a></li>
<li><a href="protocol-examples-modifyproperties.html">Modify Feature Properties</a></li>
<li><a href="protocol-examples-retrieveproperties.html">Retrieve Feature Properties</a></li>
<li><a href="protocol-examples-createproperty.html">Create a single Property</a></li>
<li><a href="protocol-examples-deleteproperty.html">Delete a single Property</a></li>
<li><a href="protocol-examples-modifyproperty.html">Modify a single Property</a></li>
<li><a href="protocol-examples-retrieveproperty.html">Retrieve a single Property</a></li>
<li><a href="protocol-examples-errorresponses.html">Error responses</a></li>
</ul>
</li>
<li class="subfolders">
<a href="#"><span></span>→ Policies examples</a>
<ul>
<li><a href="protocol-examples-policies-createpolicy.html">Create a Policy</a></li>
<li><a href="protocol-examples-policies-deletepolicy.html">Delete a Policy</a></li>
<li><a href="protocol-examples-policies-modifypolicy.html">Modify a Policy</a></li>
<li><a href="protocol-examples-policies-retrievepolicy.html">Retrieve a Policy</a></li>
<li><a href="protocol-examples-policies-modifypolicyentries.html">Modify entries</a></li>
<li><a href="protocol-examples-policies-retrievepolicyentries.html">Retrieve entries</a></li>
<li><a href="protocol-examples-policies-createpolicyentry.html">Create a single entry</a></li>
<li><a href="protocol-examples-policies-deletepolicyentry.html">Delete a single entry</a></li>
<li><a href="protocol-examples-policies-modifypolicyentry.html">Modify a single entry</a></li>
<li><a href="protocol-examples-policies-retrievepolicyentry.html">Retrieve a single entry</a></li>
<li><a href="protocol-examples-policies-modifysubjects.html">Modify subjects</a></li>
<li><a href="protocol-examples-policies-retrievesubjects.html">Retrieve subjects</a></li>
<li><a href="protocol-examples-policies-createsubject.html">Create a single subject</a></li>
<li><a href="protocol-examples-policies-deletesubject.html">Delete a single subject</a></li>
<li><a href="protocol-examples-policies-modifysubject.html">Modify a single subject</a></li>
<li><a href="protocol-examples-policies-retrievesubject.html">Retrieve a single subject</a></li>
<li><a href="protocol-examples-policies-modifyresources.html">Modify resources</a></li>
<li><a href="protocol-examples-policies-retrieveresources.html">Retrieve resources</a></li>
<li><a href="protocol-examples-policies-createresource.html">Create a single resource</a></li>
<li><a href="protocol-examples-policies-deleteresource.html">Delete a single resource</a></li>
<li><a href="protocol-examples-policies-modifyresource.html">Modify a single resource</a></li>
<li><a href="protocol-examples-policies-retrieveresource.html">Retrieve a single resource</a></li>
<li><a href="protocol-examples-policies-errorresponses.html">Error responses</a></li>
</ul>
</li>
<li><a href="protocol-examples-search.html">→ Search examples</a></li>
</ul>
</li>
<li><a href="sandbox.html">Sandbox</a></li>
<li><a href="presentations.html">Presentations</a></li>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="feedback.html">Feedback</a></li>
<p class="external">
<a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a>
</p>
</ul>
<!-- this highlights the active parent class in the sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
<script>$("li.active").parents('li').toggleClass("active");
</script>
</div>
<!-- Content Column -->
<div class="col-md-9" id="tg-sb-content">
<div class="post-header">
<h1 class="post-title-main">Protocol topics</h1>
</div>
<div class="post-content">
<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
<script>
$( document ).ready(function() {
// Handler for .ready() called.
$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });
/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
var target = $(this.getAttribute('href'))
, scroll_target = target.offset().top
$(window).scrollTop(scroll_target - 10);
return false
})
});
</script>
<div id="toc"></div>
<p>The following pages and posts are tagged with <button type="button" style="cursor: default" class="btn btn-default navbar-btn">protocol</button></p>
<table><thead><tr><th>Title</th><th>Type</th><th>Excerpt</th></tr></thead>
<tbody>
<tr><td><a href="basic-enrichment.html">Signal enrichment</a></td>
<td><span class="label label-default">Page</span></td>
<td> Available since Ditto 1.1.0 Signals which are emitted to subscribers via WebSocket API, HTTP SSEs or established connections may be enriched by extraFields to also be included in the sent out messages. Events, for example, only contain the actually changed data by... </td>
</tr>
<tr><td><a href="basic-rql.html">RQL expressions</a></td>
<td><span class="label label-default">Page</span></td>
<td> Ditto utilizes a subset of RQL as language for specifying queries. The RQL project page says about it: Resource Query Language (RQL) is a query language designed for use in URIs with object style data structures. […] RQL can be thought as... </td>
</tr>
<tr><td><a href="connectivity-protocol-bindings-amqp091.html">AMQP 0.9.1 protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Consume messages from AMQP 0.9.1 brokers via sources and send messages to AMQP 0.9.1 brokers via targets. Content-type When messages are sent in Ditto Protocol (as UTF-8 encoded String payload), the content-type of AMQP 0.9.1 messages must be set to: application/vnd.eclipse.ditto+json... </td>
</tr>
<tr><td><a href="connectivity-protocol-bindings-amqp10.html">AMQP 1.0 protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Consume messages from AMQP 1.0 endpoints via sources and send messages to AMQP 1.0 endpoints via targets. Content-type When messages are sent in Ditto Protocol (as UTF-8 encoded String payload), the content-type of AMQP 1.0 messages must be set to: application/vnd.eclipse.ditto+json... </td>
</tr>
<tr><td><a href="connectivity-protocol-bindings-http.html">HTTP 1.1 protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Perform HTTP request (with verbs POST, PUT, PATCH) to HTTP endpoints via targets. Specific connection configuration The common configuration for connections in Connections &gt; Targets applies here as well. Following are some specifics for HTTP connections: Source format Note: HTTP... </td>
</tr>
<tr><td><a href="connectivity-protocol-bindings-kafka2.html">Apache Kafka 2.x protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Send messages to Apache Kafka via targets. Content-type When Kafka messages are sent in Ditto Protocol, the payload should be UTF-8 encoded strings. If messages which are not in Ditto Protocol should be processed, a payload mapping must be configured for the connection in order... </td>
</tr>
<tr><td><a href="connectivity-protocol-bindings-mqtt.html">MQTT 3.1.1 protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Consume messages from MQTT brokers via sources and send messages to MQTT brokers via targets. Content-type When MQTT messages are sent in Ditto Protocol, the payload should be UTF-8 encoded strings. If messages which are not in Ditto Protocol should be processed, a payload... </td>
</tr>
<tr><td><a href="connectivity-protocol-bindings-mqtt5.html">MQTT 5 protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Consume messages from MQTT 5 brokers via sources and send messages to MQTT 5 brokers via targets. Content-type When MQTT messages are sent in Ditto Protocol, the payload should be UTF-8 encoded strings. If messages which are not in Ditto Protocol should be processed, a... </td>
</tr>
<tr><td><a href="httpapi-protocol-bindings-websocket.html">WebSocket protocol binding</a></td>
<td><span class="label label-default">Page</span></td>
<td> Ditto Protocol messages can be sent as is as WebSocket message. The Ditto Protocol JSON must be sent as UTF-8 encoded String payload. WebSocket features The WebSocket provides an alternative to the HTTP API in order to manage your digital twins. The benefits of the... </td>
</tr>
<tr><td><a href="protocol-bindings.html">Protocol bindings</a></td>
<td><span class="label label-default">Page</span></td>
<td> A protocol binding defines how the Ditto protocol messages are transported using a specific network protocol e.g. “Ditto Protocol over WebSocket”. The binding defines a set of rules how Ditto protocol messages are mapped to network protocol messages and back. Currently the following protocol bindings are supported: WebSocket... </td>
</tr>
<tr><td><a href="protocol-examples.html">Protocol examples</a></td>
<td><span class="label label-default">Page</span></td>
<td> The structure of the examples in this section is as follows: Command Each example always starts with a command message that initiates an operation at Ditto (e.g. create a thing, retrieve a thing). { "topic": "com.acme/xdk_58/things/twin/commands/modify", &lt;span... </td>
</tr>
<tr><td><a href="protocol-overview.html">Protocol overview</a></td>
<td><span class="label label-default">Page</span></td>
<td> The Ditto Protocol defines a JSON based text protocol for communicating with digital twins and the actual physical devices they mirror. It defines several commands both the actual device and the digital twin are able to understand. The communication pattern is defined by the Ditto protocol and shown in the... </td>
</tr>
<tr><td><a href="protocol-specification-acks.html">Protocol specification for acknowledgements</a></td>
<td><span class="label label-default">Page</span></td>
<td> Ditto Protocol messages of acknowledgements come in 2 different protocol topic variants. Acknowledgement An acknowledgment addressing a specific acknowledgement label contains that label as last part of the topic: &lt;namespace&gt;/&lt;thingName&gt;/things/&lt;channel&gt;/acks/&lt;ack-label&gt; The Ditto Protocol representation of an Acknowledgement is specified as follows:... </td>
</tr>
<tr><td><a href="protocol-specification-policies-create-or-modify.html">Policies - Create-Or-Modify protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> Create a Policy Create a Policy with the ID specified by the &lt;namespace&gt;/&lt;policyName&gt; pair in the topic and the JSON representation provided in the value. Command Field Value topic &lt;namespace&gt;/&lt;policyName&gt;/policies/commands/create path / value... </td>
</tr>
<tr><td><a href="protocol-specification-policies-delete.html">Policies - Delete protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> Delete a Policy Delete the policy identified by the &lt;namespace&gt;/&lt;policyName&gt; pair in the topic field. Command Field Value topic &lt;namespace&gt;/&lt;policyName&gt;/policies/commands/delete path / Response Field Value ... </td>
</tr>
<tr><td><a href="protocol-specification-policies-retrieve.html">Policies - Retrieve protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> Note: The topic path of policy commands contains no channel element. See the specification for details. Retrieve a Policy Retrieves a Policy identified by the &lt;namespace&gt;/&lt;policyName&gt; pair in the topic field. Command Field Value ... </td>
</tr>
<tr><td><a href="protocol-specification-policies.html">Protocol specification for Policies</a></td>
<td><span class="label label-default">Page</span></td>
<td> Ditto Protocol topic structure for Policies A valid topic consists of five elements, describing the policy affected by this message and the type of the message: &lt;namespace&gt;/&lt;policyName&gt;/policies/commands/&lt;action&gt; namespace: the namespace of the Policy. policyName: the name of the Policy. group: the... </td>
</tr>
<tr><td><a href="protocol-specification-things-create-or-modify.html">Things - Create-Or-Modify protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> All topics contain the &lt;channel&gt; which may be either twin or live. For the meaning of those two channels see Protocol specification. Create a Thing This command creates the thing specified by the &lt;namespace&gt; and &lt;thingId&gt; in the topic defined by... </td>
</tr>
<tr><td><a href="protocol-specification-things-delete.html">Things - Delete protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> All topics contain the &lt;channel&gt; which may be either twin or live. For the meaning of those two channels see Protocol specification. Delete a Thing Deletes the Thing identified by the &lt;namespace&gt; and &lt;thingId&gt; in the topic. Command ... </td>
</tr>
<tr><td><a href="protocol-specification-things-messages.html">Things - Messages protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> Messages within the Ditto Protocol allow sending, receiving and responding to Messages. They contain an arbitrary payload, so you can choose what content fits your solution best. If you want to learn more about the basic concepts of the Messages functionality, please have a look at the Messages page.... </td>
</tr>
<tr><td><a href="protocol-specification-things-retrieve.html">Things - Retrieve protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> All topics contain the &lt;channel&gt; which may be either twin or live. For the meaning of those two channels see Protocol specification. Retrieve a Thing Retrieve the Thing specified by the &lt;namespace&gt; and &lt;thingId&gt; in the topic. The response includes... </td>
</tr>
<tr><td><a href="protocol-specification-things-search.html">Things - Search protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> The search aspect of the Ditto protocol consists of 3 commands and 4 events that together implement the reactive-streams protocol over any duplex transport layer. For each search request, Ditto acts as the reactive-streams publisher of pages of search results, and the client acts as the subscriber. By... </td>
</tr>
<tr><td><a href="protocol-specification-things.html">Protocol specification for Things</a></td>
<td><span class="label label-default">Page</span></td>
<td> Ditto Protocol topic structure for Things A valid topic consists of six elements, describing the thing affected by this message and the type of the message: &lt;namespace&gt;/&lt;thingName&gt;/things/&lt;channel&gt;/&lt;criterion&gt;/&lt;action&gt; namespace: the namespace of the Thing. thingName: the name of the Thing. group: the... </td>
</tr>
<tr><td><a href="protocol-specification-topic.html">Protocol topic</a></td>
<td><span class="label label-default">Page</span></td>
<td> The Ditto Protocol defines a Topic for each Protocol message having following structure: {namespace}/{entityId}/{group}/{channel}/{criterion}/{action} Examples for valid topic paths are: org.eclipse.ditto/fancy-car-1/things/twin/commands/create org.eclipse.ditto/fancy-car-0815/things/live/events/modified org.eclipse.ditto/fancy-car-23/things/twin/search org.eclipse.ditto/fancy-car-42/things/live/messages/hello.world org.eclipse.ditto/fancy-policy-1/policies/commands/create org.eclipse.ditto/fancy-policy-1/policies/commands/delete Namespace The entity’s namespace in which the entity is... </td>
</tr>
<tr><td><a href="protocol-specification.html">Protocol specification</a></td>
<td><span class="label label-default">Page</span></td>
<td> In order to comply with the Ditto Protocol, a protocol message must consist of a Ditto Protocol envelope (JSON) and a Ditto Protocol payload (JSON). Ditto Protocol The communication protocol envelope is implicitly defined by the underlying messaging system (e.g. WebSocket) used to transport/serialize the messages... </td>
</tr>
<tr><td><a href="protocol-twinlive.html">Protocol twin/live channel</a></td>
<td><span class="label label-default">Page</span></td>
<td> The Ditto Protocol furthermore covers two different communication channels to address different aspects of devices and their digital twins. Twin The first channel, twin, connects to the digital representation of a Thing. This Thing is managed with Ditto and its state and properties can be read and updated. &lt;img... </td>
</tr>
</tbody>
</table>
<div class="tags">
</div>
</div>
<hr class="shaded"/>
<footer>
<div class="row">
<div class="col-lg-12 footer">
<div class="logo">
<a href="https://eclipse.org"><img src="images/eclipse_foundation_logo.svg" alt="Eclipse logo"/></a>
</div>
<p class="notice">
&copy;2020 Eclipse Ditto.
Site last generated: Dec 9, 2020 <br />
</p>
<div class="quickLinks">
<a href="https://www.eclipse.org/legal/privacy.php" target="_blank">
&gt; Privacy Policy
</a>
<a href="https://www.eclipse.org/legal/termsofuse.php" target="_blank">
&gt; Terms of Use
</a>
<a href="https://www.eclipse.org/legal/copyright.php" target="_blank">
&gt; Copyright Agent
</a>
<a href="https://www.eclipse.org/legal" target="_blank">
&gt; Legal
</a>
<a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">
&gt; License
</a>
<a href="https://eclipse.org/security" target="_blank">
&gt; Report a Vulnerability
</a>
</div>
</div>
</div>
</footer>
</div>
<!-- /.row -->
</div>
<!-- /.container -->
</div>
<!-- /#main -->
</div>
</body>
</html>