Что такое Толкатель?

Pusher - это размещенный сервис для простого предоставления данных и функций в реальном времени вашим мобильным и веб-приложениям.

В проекте, над которым я сейчас работаю, используется Pusher, и пока я искал, что такое Pusher, я наткнулся на пакет Flutter. Пакет работает нормально, и я рад, что нашел его так быстро. Спасибо сообществу Flutter и HomeXlabs.

Пакет Pusher Websocket

В этот пакет входят плагины pusher-websocket-java и pusher-websocket-swift. Приятно знать, что он неофициальный и не поддерживается Pusher.

После создания учетной записи Pusher вам необходимо получить информацию о ключе и кластере для вашего проекта. После этого добавьте pusher_websocket_flutter в свой pubsec.yaml.

Давайте создадим файл с именем pusher_service.dart. Здесь мы инициализируем и подключим Pusher, после чего подпишемся на канал и привяжем события к этому каналу для прослушивания данных.

Каналы и события

Каналы и события - это особые термины Pusher, не путайте их с PlatformChannels. Каналы являются своего рода пространством имен для фильтрации и группировки событий. Мы можем определять события, например, что-то происходящее в вашей системе или уведомление. Например, у нас может быть общедоступный канал и событие message-create.

У меня есть последнее событие, последнее состояние подключения и канал в моем классе PusherService.

Теперь напишите методы init, connect, subscribe и unsubcribe. В методе init укажите свой ключ ve кластер. Метод Init настраивает Pusher, поэтому нам нужны key и cluster. После этого подключитесь с помощью метода подключения и подпишитесь на канал с помощью метода подписки.

Теперь послушаем события с этого канала. Я подумываю добавить входящие данные в StreamController, а затем использовать StreamBuilder для создания своего виджета при поступлении новых данных.

Под lastEvent, lastConnectionState и channel я определяю следующее:

В методе bindEvent ниже я добавляю все данные входящих событий в приемник с именем _inEventData. В своем методе unBindEvent я просто отключаю канал и закрываю этот StreamController.

Вот способ вызвать предыдущие методы один за другим.

Теперь я могу отображать данные на своем рабочем столе с помощью StreamBuilder. В методе виджета initState я вызываю метод firePusher. В StreamBuilder, если данных нет, я показываю CircularProgressIndicator, если есть данные, я использую виджет Текст для его отображения. Наконец, в методе dispose я вызываю метод unbindEvent.

В создателе событий на Pusher.com (на вкладке Debug Console) я отправляю события для тестирования.

Вопросы всегда приветствуются в Twitter @mirkancal и L inkedIn. Продолжайте
Flutterin ’.

Ознакомьтесь с другой моей статьей:
Использование SVG во Flutter