Что такое Толкатель?
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