> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.6mm.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.6mm.com/_mcp/server.

# Зв'язок, підписка та серцебиття

Використовуйте WebSocket потоки для ринкових даних та приватних оновлень стану користувачів, які мають залишатися актуальними без опитувань.

<h2 id="connection-url">
  Зв'язок URL
</h2>

```text
wss://ws.6mm.com/ws
```

Приватні потоки потребують контексту автентифікації, такого як listenKey або токен доступу, як описано в документації приватного каналу.

<h2 id="subscribe">
  Підписатися
</h2>

```json
{ "id": "1772007814666", "op": "subscribe", "args": ["market.depth.BTCUSDT"] }
```

Успішне підтвердження підписки:

```json
{
  "id": "1772007814666",
  "event": "subscribe",
  "success": true,
  "data": ["market.depth.BTCUSDT"]
}
```

<h2 id="unsubscribe">
  Відписатися
</h2>

```json
{ "id": "1772007814667", "op": "unsubscribe", "args": ["market.depth.BTCUSDT"] }
```

<h2 id="application-ping">
  Пінг застосування
</h2>

```json
{ "id": "1772007814668", "op": "ping", "args": [] }
```

<h2 id="message-envelope">
  Конверт повідомлення
</h2>

Публічні просування використовують узгоджену оболонку:

```json
{
  "topic": "market.depth.BTCUSDT",
  "event": "data",
  "ts": 1772007815000,
  "data": {}
}
```

<h2 id="operational-recommendations">
  Оперативні рекомендації
</h2>

* Генерувати унікальний клієнтський `id` для кожного запиту на підписку, відписку та пінг.
* Розглядайте повторне підключення як нову сесію та повторно підписуйтеся на необхідні теми.
* Перевірити, чи повернений `topic` відповідає каналу, який очікує ваш сервіс.
* Підтримувати ідемпотентну обробку повідомлень, коли йдеться про приватні замовлення або події облікового запису.
* Зміни стану з'єднання журналу, підтвердження підписки та аномальні відключення.

<h2 id="reconnect-workflow">
  Робочий процес повторного підключення
</h2>

1. Закрийте або відкиньте попередній роз'єм і створіть нове з'єднання.
2. Повторна автентифікація приватних потоків за допомогою дійсного listenKey або доступного токену.
3. Підпишіться на всі необхідні теми і чекайте на успішні подяки.
4. Замініть стан локальної книги замовлень на новий знімок перед поступовими оновленнями.
5. Узгодити відкриті ордери, позиції та баланси через REST , якщо приватні події могли бути пропущені.

Використовуйте обмежене експоненціальне відключення з джиттером для спроб повторного підключення. Клієнт, що постійно підключається, повинен попереджати операторів замість безкінечних повторних спроб без видимості.

<h2 id="heartbeat-and-stale-connections">
  Серцебиття та застарілі зв'язки
</h2>

* Відстежувати останнє вхідне повідомлення та успішне підтвердження пінгу.
* Використовуйте інтервал серцебиття та поріг очікування, дозволений для виробничого середовища.
* Вважати з'єднання застарілим при перевищенні налаштованого порогу, навіть якщо роз'єм TCP все ще виглядає відкритим.
* Не використовувати повторно підписки зі старого сокета; повторно підписуватися явно після кожного повторного підключення.

<h2 id="related-documentation">
  Пов'язана документація
</h2>

* [Канали публічного ринку](/uk/developer-api/websocket/public-market-channels): теми, безперервність книги замовлень, угоди, свічки та тікери.
* [Приватний користувацький канал](/uk/developer-api/websocket/private-user-channel): listenKey життєвий цикл та автентифіковані події.
* [Рекомендації щодо інтеграції](/uk/developer-api/integration-recommendations): повтори, ідемпотентність, моніторинг і тестування під час запуску.