ПРОТОКОЛ
TransportDriver
Абстрактный Transport Driver API
Описывает все, что способно отправлять сообщения и подписываться на входящие сообщения (например udp сокет). Вопреки некоторым сложностям, связанным с невозможностью отслеживать получения сообщений, это самый простой подход к двунаправленной отправке сообщений, который может быть имплементирован с помощью любого вида сокетов, http+sse и т.д.
Методы
send(meta:data:)
Отправка сообщения с помощью транспорта
Этот метод ожидает, пока сообщение будет отправлено (но не дожидается получения) и отдает в ответ возможна ли его отправка. Можно определить пункт назначения и способ отправки.
Параметры
Имя | Описание |
---|---|
meta | идентификаторы сообщения |
data | данные сообщения |
Возвращает
void
on(filter:callback:)
Подписывается на определенные сообщения
Возможна подписка на одни и те же сообщения дважды, что может быть использовано в продвинутых стратегиях фильтрации сообщений
Параметры
Имя | Описание |
---|---|
filter | фильтр входящего сообщения |
callback | callback, вызывающийся когда сообщение будет соответствовать фильтру |
Возвращает
String
идентификатор подписки, может быть использован для отмены подписки
off(id:data:)
Отменяет существующую подписку.
Не отрабатывает, если с данным id нет связанной подписки.
Если текущий подписчик ждет сообщения, можно использовать необязательное поле data?
для решения этой проблемы.
Параметры
Имя | Описание |
---|---|
id | идентификатор подписки, возвращается после создания |
data | (опционально) данные сообщения к отправке для коллбэка текущего подписчика |
Возвращает
void