1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mqtt-rs-rmqtt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
sys-topic.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 14:56 2a97644

Темы системы $SYS

RMQTT периодически публикует своё собственное рабочее состояние, статистику сообщений и события онлайн/офлайн клиентов в темах системы, начинающихся с $SYS/.

Путь темы $SYS начинается с $SYS/brokers/{node}/. {node} относится к имени узла, на котором произошло событие/сообщение, например:

$SYS/brokers/1/stats
$SYS/brokers/1/metrics

Плагин:

rmqtt-sys-topic

Файл конфигурации плагина:

plugins/rmqtt-sys-topic.toml

Параметры конфигурации плагина:

#$SYS публикация системного сообщения QoS
publish_qos = 1

#$SYS период публикации системных сообщений
publish_interval = "1m"

##Поддержка сохранения сообщения, true/false, значение по умолчанию: false
message_retain_available = false
##Время истечения срока действия сообщения, 0 означает отсутствие истечения
message_expiry_interval = "5m"
TIP

По умолчанию RMQTT разрешает только MQTT-клиентам с локального компьютера подписываться на темы $SYS. Обратитесь к разделу Встроенные ACL для изменения правил подписки-публикации. В RMQTT большую часть данных в темах $SYS можно получить с помощью других менее тесно связанных методов. Статус устройства онлайн/офлайн можно получить с использованием Webhooks, а статус узла и кластера — через HTTP API — статистические метрики.

События онлайн/оффлайн клиента

Тема Объяснение
$SYS/brokers/{node}/clients/{clientid}/connected Событие онлайн: когда любой клиент выходит в онлайн, RMQTT публикует сообщение в этой теме.
$SYS/brokers/{node}/clients/{clientid}/disconnected Событие оффлайн: когда любой клиент уходит в оффлайн, RMQTT публикует сообщение в этой теме.

connected Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:

{
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "keepalive": 60,
  "proto_ver": 4,
  "clean_session": true,
  "connected_at": 1692069106000,
  "session_present": false,
  "time": "2023-08-15 11:11:46.984"
}

disconnected Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:

{
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "disconnected_at": 1692069106000,
  "reason": "Disconnect",
  "time": "2023-08-15 11:11:46.984"
}

Создание/завершение сеанса

Тема Объяснение
$SYS/brokers/{node}/session/{clientid}/created Событие создания сеанса: когда создаётся сеанс любого клиента, RMQTT публикует сообщение в этой теме.
$SYS/brokers/{node}/session/{clientid}/terminated Событие завершения сеанса: когда завершается сеанс любого клиента, RMQTT публикует сообщение в этой теме.

created Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:

{
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "created_at": 1692069106000,
  "time": "2023-08-15 11:11:46.984"
}

terminated Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:

{
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "reason": "Disconnect",
  "time": "2023-08-15 11:11:46.984"
}

Подписка/отписка от тем

Тема Объяснение
$SYS/brokers/{node}/session/{clientid}/subscribed Событие успешной подписки на тему: когда подписка на любую тему успешна, RMQTT публикует сообщение в этой теме.
$SYS/brokers/{node}/session/{clientid}/unsubscribed Событие отписки от темы: когда происходит отписка от любой темы

Примечание: В тексте запроса присутствуют фрагменты кода на языке программирования YAML, которые не были переведены. Отписка успешна, RMQTT публикует сообщение в этой теме.

Подписан. Данные события сообщения анализируются и форматируются в следующий формат JSON:

{
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "topic": "foo/#",
  "opts": { "qos":1 },
  "time": "2023-08-15 11:11:46.984"
}

Отписан. Данные события сообщения анализируются и форматируются в следующий формат JSON:

{
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "topic": "foo/#",
  "time": "2023-08-15 11:11:46.984"
}

**Событие «Сообщение отброшено»**

| Тема | Объяснение                                  |
|------------|-------------------------------------|
| $SYS/brokers/{node}/message/dropped     | Событие «Сообщение отброшено»: когда любое сообщение отбрасывается, RMQTT публикует сообщение в эту тему.  |

*Отброшено.* Данные события сообщения анализируются и форматируются в следующий формат JSON:
```bash
{
  "from_node": 1,
  "from_ipaddress": "127.0.0.1:1883",
  "from_clientid": "rmqtt-12312431wewr232",
  "from_username": "foo",
  "node": 1,
  "ipaddress": "127.0.0.1:1883",
  "clientid": "rmqtt-12312431wewr232",
  "username": "foo",
  "dup": false,
  "retain": false,
  "qos": 1,
  "topic": "foo/#",
  "packet_id": 3,
  "payload": "dGVzdCAvdGVzdC9sd3QgLi4u",
  "reason": "MessageExpiration",
  "pts": 1692069106000,
  "ts": 1692069107000,
  "time": "2023-08-15 11:11:46.984"
}

**Данные о состоянии узла**

| Тема                | Объяснение     |
|---------------------------|--------|
| $SYS/brokers/{node}/stats | Данные о состоянии узла |

*Статистика.* Данные события сообщения анализируются и форматируются в следующий формат JSON:

```bash
{
    "connections.count": 0,
    "connections.max": 1,
    "handshakings.count": 0,
    "handshakings.max": 0,
    "handshakings_active.count": 0,
    "handshakings_rate.count": 0,
    "handshakings_rate.max": 0,
    "retained.count": 0,
    "retained.max": 0,
    "routes.count": 0,
    "routes.max": 0,
    "sessions.count": 0,
    "sessions.max": 1,
    "subscriptions.count": 0,
    "subscriptions.max": 0,
    "subscriptions_shared.count": 0,
    "subscriptions_shared.max": 0,
    "topics.count": 0,
    "topics.max": 0
}

**Статистические метрики**

| Тема                | Объяснение     |
|---------------------------|--------|
| $SYS/brokers/{node}/metrics | Статистические метрики узла |

*Метрики.* Данные события сообщения анализируются и форматируются в следующий формат JSON:

```bash
{
    "client.auth.anonymous": 1,
    "client.auth.anonymous.error": 0,
    "client.authenticate": 1,
    "client.connack": 1,
    "client.connack.auth.error": 0,
    "client.connack.error": 0,
    "client.connect": 1,
    "client.connected": 1,
    "client.disconnected": 1,
    "client.handshaking.timeout": 0,
    "client.publish.auth.error": 0,
    "client.publish.check.acl": 0,
    "client.publish.error": 0,
    "client.subscribe": 0,
    "client.subscribe.auth.error": 0,
    "client.subscribe.check.acl": 0,
    "client.subscribe.error": 0,
    "client.unsubscribe": 0,
    "messages.acked": 0,
    "messages.acked.admin": 0,
    "messages.acked.custom": 0,
    "messages.acked.lastwill": 0,
    "messages.acked.retain": 0,
    "messages.acked.system": 0,
    "messages.delivered": 0,
    "messages.delivered.admin": 0,
    "messages.delivered.custom": 0,
    "messages.delivered.lastwill": 0,
    "messages.delivered.retain": 0,
    "messages.delivered.system": 0,
    "messages.dropped": 0,
    "messages.nonsubscribed": 0,
    "messages.nonsubscribed.admin": 0,
    "messages.nonsubscribed.custom": 0,
    "messages.nonsubscribed.lastwill": 0,
    "messages.nonsubscribed.system": 0,
    "messages.publish": 0,
    "messages.publish.admin": 0,
    "messages.publish.custom": 0,
    "messages.publish.lastwill": 0,
    "messages.publish.system": 0,
    "session.created": 1,
    "session.resumed": 0,
    "session.subscribed": 0,
    "session.terminated": 1,
    "session.unsubscribed": 0
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mqtt-rs-rmqtt.git
git@api.gitlife.ru:oschina-mirror/mqtt-rs-rmqtt.git
oschina-mirror
mqtt-rs-rmqtt
mqtt-rs-rmqtt
master