<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.spruthub.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_%28%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8%29</id>
	<title>Как работает протокол MQTT (немного теории) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.spruthub.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_%28%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.spruthub.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_(%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8)&amp;action=history"/>
	<updated>2026-04-30T20:03:19Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.spruthub.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_(%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8)&amp;diff=1964&amp;oldid=prev</id>
		<title>Bigmanekb в 05:00, 24 ноября 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.spruthub.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_(%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8)&amp;diff=1964&amp;oldid=prev"/>
		<updated>2023-11-24T05:00:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 08:00, 24 ноября 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot;&gt;Строка 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* они чувствительны к регистру. То есть топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;мое_тело/задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; и топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;Мое_Тело/Задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; это два разных топика&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* они чувствительны к регистру. То есть топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;мое_тело/задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; и топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;Мое_Тело/Задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; это два разных топика&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* топики не создаются &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;не &lt;/del&gt;сервере администратором. Они создаются публикаторами и подписчиками которые на них подписаны. Брокер только занимается передачей сообщений и служебной информации.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* топики не создаются &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;на &lt;/ins&gt;сервере администратором. Они создаются публикаторами и подписчиками которые на них подписаны. Брокер только занимается передачей сообщений и служебной информации.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Зачем нужны разделители в виде &amp;quot;&amp;#039;&amp;#039;&amp;#039;/&amp;quot; ?&amp;#039;&amp;#039;&amp;#039; ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Зачем нужны разделители в виде &amp;quot;&amp;#039;&amp;#039;&amp;#039;/&amp;quot; ?&amp;#039;&amp;#039;&amp;#039; ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawikidb:diff:1.41:old-713:rev-1964:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Bigmanekb</name></author>
	</entry>
	<entry>
		<id>https://wiki.spruthub.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_(%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8)&amp;diff=713&amp;oldid=prev</id>
		<title>Bigmanekb: Новая страница: «Простым языком, протокол MQTT используется для общения между умными устройствами, путем пересылки сообщений о своем состоянии. Для этого используется WiFi / Ethernet сеть и некое центральное устройство под названием Брокер (Broker). В его задачу входит слушать се...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.spruthub.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_MQTT_(%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8)&amp;diff=713&amp;oldid=prev"/>
		<updated>2022-11-21T10:10:57Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Простым языком, протокол MQTT используется для общения между умными устройствами, путем пересылки сообщений о своем состоянии. Для этого используется WiFi / Ethernet сеть и некое центральное устройство под названием Брокер (Broker). В его задачу входит слушать се...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Простым языком, протокол MQTT используется для общения между умными устройствами, путем пересылки сообщений о своем состоянии. Для этого используется WiFi / Ethernet сеть и некое центральное устройство под названием Брокер (Broker). В его задачу входит слушать сеть, получать и передавать полученные сообщения и хранить их &amp;quot;пока смерть не разлучит нас&amp;quot; если это запрошено. &lt;br /&gt;
&lt;br /&gt;
Основные термины и понятия используемые в данном протоколе:&lt;br /&gt;
&lt;br /&gt;
* Message&lt;br /&gt;
* Publish&lt;br /&gt;
* Subscribe&lt;br /&gt;
* Topic&lt;br /&gt;
* QoS&lt;br /&gt;
* Retain&lt;br /&gt;
&lt;br /&gt;
Разберем каждый термин по отдельности&lt;br /&gt;
&lt;br /&gt;
== Message ==&lt;br /&gt;
Сообщения (message) содержат в себе информацию, которую один участник сети на базе протокола MQTT хочет передать другим. Взаимодействие между участниками сети осуществляется через &amp;#039;&amp;#039;&amp;#039;Брокера.&amp;#039;&amp;#039;&amp;#039; То есть, если мне, как устройству, нужно передать сообщение о том что я что-то сделал или сообщить о том, как у меня дела, я передаю сообщение брокеру &amp;#039;&amp;#039;&amp;#039;публикуя&amp;#039;&amp;#039;&amp;#039; во всеуслышание что &amp;quot;я что-то сделал&amp;quot; или &amp;quot;как у меня дела&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Publish ==&lt;br /&gt;
Это процесс передачи сообщения &amp;#039;&amp;#039;&amp;#039;брокеру.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
То есть простым языком, я подошел к брокеру и сказал &amp;quot;мама я покакал&amp;quot;. Брокер гипотетически должен услышать это сообщение и записать его к себе в блокнотик. Почему гипотетически? Потому что есть особенности протокола, которые мы разберем чуть ниже. Пока берем за данность, что я сказал что-то брокеру используя механизм &amp;#039;&amp;#039;&amp;#039;Publish&amp;#039;&amp;#039;&amp;#039; и он это услышал и записал.&lt;br /&gt;
&lt;br /&gt;
== Subscribe ==&lt;br /&gt;
Так как всеми сообщениями от всех устройств владеет исключительно брокер, то нам жеж нужно как то получить эти сообщения. Для этого мы подписываемся на рассылку от брокера для получения проходящих через него сообщений. Чтобы читать какие-то конкретные сообщения, нам необходимо определить на какую &amp;#039;&amp;#039;&amp;#039;тему&amp;#039;&amp;#039;&amp;#039; мы хотим получать эти сообщения, и для этого как раз используется механизм &amp;#039;&amp;#039;&amp;#039;Topic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Topic ==&lt;br /&gt;
Это как раз таки &amp;#039;&amp;#039;&amp;#039;Тема&amp;#039;&amp;#039;&amp;#039;, по поводу которой мы хотим получать или как ни странно отправлять сообщения.&lt;br /&gt;
&lt;br /&gt;
То есть формат общения между участниками выглядит примерно так.&lt;br /&gt;
&lt;br /&gt;
Я как участник хочу сказать всем &amp;quot;мама я покакала&amp;quot;&lt;br /&gt;
&lt;br /&gt;
для этого я создаю топик любого содержания, например: &amp;#039;&amp;#039;&amp;#039;мое_тело/задница/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
и сообщаю в этот топик сообщение &amp;#039;&amp;#039;&amp;#039;&amp;quot;мама я покакала&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Брокер получит это сообщение, и передаст всем, кто подписался на тему (топик) &amp;#039;&amp;#039;&amp;#039;мое_тело/задница/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
То есть это такая вот упрощенная система смс рассылок с определенными темами.&lt;br /&gt;
&lt;br /&gt;
Формат топика может быть разным и абсолютно любым. В принципе мы можем создать любой топик, и в него передавать сообщения любого содержания. Главное чтобы получатель был подписан на этот топик и знал что делать с информацией полученной из сообщений.&lt;br /&gt;
&lt;br /&gt;
Что касается особенностей топиков, то их не так чтобы много.&lt;br /&gt;
&lt;br /&gt;
* они чувствительны к регистру. То есть топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;мое_тело/задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; и топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;Мое_Тело/Задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; это два разных топика&lt;br /&gt;
* топики не создаются не сервере администратором. Они создаются публикаторами и подписчиками которые на них подписаны. Брокер только занимается передачей сообщений и служебной информации.&lt;br /&gt;
&lt;br /&gt;
== Зачем нужны разделители в виде &amp;quot;&amp;#039;&amp;#039;&amp;#039;/&amp;quot; ?&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
Они позволяют выстраивать иерархию. Ну например:&lt;br /&gt;
&lt;br /&gt;
У нас есть в гостиной и в спальне по два выключателя и один в гараже. Для этого мы формируем на выключателях в топики в виде:&lt;br /&gt;
&lt;br /&gt;
В гостиной:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В спальне:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/bedroom/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/bedroom/switch2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В гараже:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;garage/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Зачем это нужно ? &lt;br /&gt;
&lt;br /&gt;
Затем, что есть служебные топики, которые позволяют подписаться на группы топиков или сообщений.&lt;br /&gt;
&lt;br /&gt;
Например если мы хотим читать вообще все сообщения мы подписываемся на топик &amp;#039;&amp;#039;&amp;#039;#&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Если мы хотим видеть то, что происходит в доме, то мы подписываемся на топик &amp;#039;&amp;#039;&amp;#039;home/#&amp;#039;&amp;#039;&amp;#039; и будем получать сообщения в топиках:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/bedroom/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/bedroom/switch2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Но не будем видеть то что происходит в топике:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;garage/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Если мы хотим видеть то, что происходит в гостиной, мы подписываемся на топик &amp;#039;&amp;#039;&amp;#039;home/livingroom/#&amp;#039;&amp;#039;&amp;#039; и будем получать сообщения только из топиков &lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Также в подписках можно использовать символ &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; Он позволяет например узнать, что происходит со всеми выключателями под номером 1 во всех комнатах дома. Для этого мы подписываемся на топик &amp;#039;&amp;#039;&amp;#039;home/+/switch1,&amp;#039;&amp;#039;&amp;#039; и мы будем получать сообщения в топиках &amp;#039;&amp;#039;&amp;#039;home/livingroom/switch1&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;home/bedroom/switch1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В общем я думаю понятно что и как происходит с этими топиками.&lt;br /&gt;
&lt;br /&gt;
== Служебные сообщения ==&lt;br /&gt;
В качестве служебных сообщений используются в основном два типа сообщений&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Birth Message&amp;#039;&amp;#039;&amp;#039; - которое сообщает миру что &amp;quot;я родился и живой&amp;quot;&lt;br /&gt;
&lt;br /&gt;
и &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Last Will and Testament (LWT)&amp;#039;&amp;#039;&amp;#039; которое сообщает что после этого сообщения считать меня мертвым.&lt;br /&gt;
&lt;br /&gt;
Ну плюс еще используется &amp;#039;&amp;#039;&amp;#039;Keep Alive&amp;#039;&amp;#039;&amp;#039; сообщения, которые сообщают брокеру что &amp;quot;я все еще живой&amp;quot; и стандартно посылаются каждые 60 секунд. Если брокер не получил это сообщение от клиента, то он принудительно пингует его чтобы выяснить живой ли тот, и если выясняется что он неживой, то брокер публикует за клиента &amp;#039;&amp;#039;&amp;#039;LWT сообщение&amp;#039;&amp;#039;&amp;#039;, чтобы все узнали что тот скончался.&lt;br /&gt;
&lt;br /&gt;
Соответственно получение брокером Birth Message от устройства, переводит устройство в понимании брокера в режим &amp;#039;&amp;#039;&amp;#039;ONLINE,&amp;#039;&amp;#039;&amp;#039; а после того как брокер получает от устройства LWT сообщение или когда сам принимает решения что тот скончался проверив устройство на доступность, то переводит статус устройства в режим &amp;#039;&amp;#039;&amp;#039;OFFLINE.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== QoS ==&lt;br /&gt;
QoS в принципе расшифровывается как Quality Of Service, то есть качество предоставляемой услуги. В разрезе MQTT оно имеет три значения 0,1 и 2&lt;br /&gt;
&lt;br /&gt;
Если по простому, то эти варианты означают по факту определение того, надо ли нам как публикующему свое сообщение устройству, быть уверенным что оно получено.&lt;br /&gt;
&lt;br /&gt;
* QoS=0 означает что мы один раз публикуем сообщение &amp;quot;мама я покакала&amp;quot; и нам пофиг услышали нас или нет&lt;br /&gt;
* QoS=1 означает что мы будем публиковать сообщение &amp;quot;мама я покакала&amp;quot; до посинения, до тех пор пока нам не скажут что нас услышали и можно заткнуться уже.&lt;br /&gt;
* QoS=2 означает что мы один раз сказали &amp;quot;мама я покакала&amp;quot;, получили от мамы подтверждение того что она нас услышала, сообщили маме что мы узнали о том что мама нас улышала, а мама подтвердила, что она поняла что мы узнали о том что она услышала :)))))) &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Я думаю первая буква М в протоколе, имеет отсылку в адрес Майкрософта, который по стопицот раз переспрашивает &amp;quot;действительно ли вы уверены что хотите закрыть это приложения?&amp;quot; :)))))))&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Вот в общем то и все.&lt;br /&gt;
&lt;br /&gt;
== Retain ==&lt;br /&gt;
Этот параметр имеет всего два значения вкл и выкл. Означает он очень простой механизм.&lt;br /&gt;
&lt;br /&gt;
Если у нас режим выключен, то когда я сообщаю всему миру &amp;quot;мама я покакала&amp;quot;, то его слышат все кто подписан &amp;#039;&amp;#039;&amp;#039;сейчас&amp;#039;&amp;#039;&amp;#039; на топик в который я это сообщил. Но вновь подключившийся подписчик на наш веселый топик &amp;#039;&amp;#039;&amp;#039;&amp;quot;мое_тело/задница&amp;quot;&amp;#039;&amp;#039;&amp;#039; не узнает о том что все уже случилось и так и умрет в неведении наверное.&lt;br /&gt;
&lt;br /&gt;
Если же мы включаем режим Retain, то брокер берет на себя обязательство, после того как мы сообщили миру об акте дефекации, сообщать каждому вновь подписавшемуся на этот топик сей удивительный и жизненно необходимый факт.&lt;/div&gt;</summary>
		<author><name>Bigmanekb</name></author>
	</entry>
</feed>