Живой, read-only поток государственных событий Приднестровья поверх NATS — отключения коммунальных услуг и позиции транспорта, доступные из любого клиента: браузер, сервер или CLI.
events.address.md — это публичный, доступный только на чтение хаб событий ПМР поверх NATS. Он нейтрально агрегирует публичные события Приднестровья из разных источников и публикует их в реальном времени. Сейчас доступны два потока: отключения коммунальных услуг (ЖКХ) и онлайн-позиции общественного транспорта — со временем могут добавляться и другие провайдеры.
Никакого бэкенда и опроса API: вы открываете одно NATS-соединение к
wss://events.address.md,
подписываетесь на нужные subject'ы и получаете события по мере их появления.
Хаб ничего не хранит про вас — это чистый pub/sub транспорт.
Всё публикуется под корневым subject'ом pmr.>.
Фильтруйте по поставщику, типу события, маршруту или борту — NATS-подписки делают это за вас.
| Subject | Payload | Описание |
|---|---|---|
| pmr.utility.event.<supplier>.<event> | UtilityEvent | Отключения/возобновления ЖКХ (water/electricity, shutdown/resume) |
| pmr.transit.vehicle.<route>.<id> | VehiclePosition | Позиции общественного транспорта |
{
"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"] }
]
}
{
"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 — снимок текущего положения борта общественного транспорта.
Любой NATS-клиент — Go, Python, JS, nats CLI — говорит с хабом по защищённому WebSocket. Ниже два примера: универсальный CLI и браузерный nats.ws.
Официальные SDK для Go, Python, JS и др., либо nats CLI — все умеют wss.
Подключитесь к wss://events.address.md под анонимным пользователем public.
Слушайте pmr.> целиком или сузьте до конкретного потока/маршрута.
Получайте сообщения и читайте JSON-payload средствами вашего клиента.
# подписаться на все события
nats sub -s wss://events.address.md "pmr.>"
<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>