Перейти к основному содержимому

WSTransportManager

Менеджер WebSocket-транспорта для работы с удаленным сервером Duit.

Реализует TransportCapabilityDelegate и обеспечивает двустороннюю связь с сервером через WebSocket-соединение для получения UI-разметки и обработки событий в реальном времени.

Конструктор​

WSTransportManager({
required String url,
String baseUrl = "",
Map<String, String> defaultHeaders = const {},
Converter<Object?, String>? encoder,
Converter<Uint8List, Object?>? decoder,
});

Параметры​

ПараметрТипПо умолчаниюОписание
urlString—URL для WebSocket-соединения (обязательный)
baseUrlString""Базовый URL (опционально)
defaultHeadersMap<String, String>{}Заголовки для установки соединения
encoderConverter?nullКастомный кодировщик для исходящих сообщений
decoderConverter?nullКастомный декодер для входящих сообщений

Особенности​

  • Поддерживает постоянное двустороннее соединение
  • Автоматически обрабатывает входящие события от сервера
  • Позволяет отправлять действия и получать обновления UI в реальном времени

Пример использования​

Базовое использование​

final driver = XDriver.remote(
transportManager: WSTransportManager(
url: 'ws://api.example.com/ws',
),
);

С авторизацией и кастомным декодером​

final driver = XDriver.remote(
transportManager: WSTransportManager(
url: 'wss://api.example.com/ws',
defaultHeaders: {
'Authorization': 'Bearer $token',
},
decoder: MyCustomDecoder(),
),
);

Формат сообщений​

При выполнении действий, WSTransportManager отправляет сообщения в следующем формате:

{
"event": "<action_event_name>",
"payload": {
// данные действия
}
}
подсказка

WebSocket-транспорт идеально подходит для приложений, требующих обновления UI в реальном времени, таких как чаты, дашборды или коллаборативные инструменты.

warning

URL для WebSocket-соединения должен начинаться с ws:// или wss:// (для защищенного соединения).