events.address.md
ONLINE wss://events.address.md

Public PMR event hub events
.address.md

Живой, read-only поток государственных событий Приднестровья поверх NATS — отключения коммунальных услуг и позиции транспорта, доступные из любого клиента: браузер, сервер или CLI.

01 — О ПРОЕКТЕ

Гос-события,
без посредников

events.address.md — это публичный, доступный только на чтение хаб событий ПМР поверх NATS. Он нейтрально агрегирует публичные события Приднестровья из разных источников и публикует их в реальном времени. Сейчас доступны два потока: отключения коммунальных услуг (ЖКХ) и онлайн-позиции общественного транспорта — со временем могут добавляться и другие провайдеры.

Никакого бэкенда и опроса API: вы открываете одно NATS-соединение к wss://events.address.md, подписываетесь на нужные subject'ы и получаете события по мере их появления. Хаб ничего не хранит про вас — это чистый pub/sub транспорт.

Транспорт
NATS over WebSocket (wss)
Endpoint
wss://events.address.md
Доступ
анонимный · subscribe-only
Корень
subject pmr.>
Формат
JSON · UTF-8
Клиент
nats.ws 1.30.3
02 — ПОТОКИ И PAYLOAD'Ы

Два потока, один корень

Всё публикуется под корневым subject'ом pmr.>. Фильтруйте по поставщику, типу события, маршруту или борту — NATS-подписки делают это за вас.

SubjectPayloadОписание
pmr.utility.event.<supplier>.<event> UtilityEvent Отключения/возобновления ЖКХ (water/electricity, shutdown/resume)
pmr.transit.vehicle.<route>.<id> VehiclePosition Позиции общественного транспорта
UtilityEvent pmr.utility.event.water.shutdown
{
  "incidentId": "f7c1-…",
  "supplier": "water",
  "event": "shutdown",
  "organization": "ГУП Водоснабжение и Водоотведение",
  "description": "Отключение воды",
  "eventStart": "2026-06-21T10:00",
  "eventStop": "2026-06-21T18:00",
  "publishedAt": "2026-06-21T07:00:00Z",
  "source": { "messageId": 123, "chatId": -100123 },
  "addresses": [
    { "region": { "name": "…", "kladr": "…", "type": "…" },
      "city":   { "name": "…", "kladr": "…", "type": "…" },
      "street": { "name": "Пушкина", "kladr": "001-01.001", "type": "ул" },
      "houses": ["1", "3", "5-9"] }
  ]
}
VehiclePosition pmr.transit.vehicle.3.12345
{
  "vehicleId": "12345",
  "label": "А 884 ЕХ",
  "route": { "ref": "3", "type": "trolley_bus", "name": "…" },
  "lat": 46.84, "lng": 29.61,
  "bearing": 120.0, "speedKmh": 24.0,
  "ts": "2026-06-21T07:00:00Z",
  "source": "ocity", "stale": false
}

UtilityEvent — camelCase; eventStart/eventStop в формате yyyy-MM-dd'T'HH:mm, publishedAt — ISO-8601 instant; null-поля опускаются. VehiclePosition — снимок текущего положения борта общественного транспорта.

03 — КАК ПОДКЛЮЧИТЬСЯ

Подключиться можно
откуда угодно

Любой NATS-клиент — Go, Python, JS, nats CLI — говорит с хабом по защищённому WebSocket. Ниже два примера: универсальный CLI и браузерный nats.ws.

Возьмите NATS-клиент

Официальные SDK для Go, Python, JS и др., либо nats CLI — все умеют wss.

Соединение

Подключитесь к wss://events.address.md под анонимным пользователем public.

Подписка

Слушайте pmr.> целиком или сузьте до конкретного потока/маршрута.

Обработка

Получайте сообщения и читайте JSON-payload средствами вашего клиента.

Доступ: анонимный пользователь public, только подписка (subscribe-only) на корне pmr.>. Публиковать в хаб нельзя — это read-only поток.
универсальный nats CLI · любой клиент
# подписаться на все события
nats sub -s wss://events.address.md "pmr.>"
браузер nats.ws · ESM
<script type="module">
  import { connect, StringCodec } from "https://cdn.jsdelivr.net/npm/nats.ws@1.30.3/esm/nats.js";
  const nc = await connect({ servers: "wss://events.address.md" });
  const sc = StringCodec();
  const sub = nc.subscribe("pmr.>");
  for await (const m of sub) {
    console.log(m.subject, sc.decode(m.data));
  }
</script>
04 — LIVE

Эфир в реальном времени

connecting…