Flutter: работа с WebSocket
Получение данных по протоколу http/http как уже описывал это конечно хорошо, НО! обмен «онлайн» гораздо интереснее. Чтобы сервер в любой момент мог отправить информацию в приложение. И есть решение: при запуске приложения устанавливать соединен с сервером Websocket и дальше уже обменивать информацией по этому протоколу.
Пакет:
1 2 |
dependencies: web_socket_channel: ^2.2.0 |
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import 'package:web_socket_channel/io.dart'; import 'package:web_socket_channel/status.dart' as status; import 'dart:convert'; import 'dart:core'; void main() async { final channel = await IOWebSocketChannel.connect('ws://укау.цукац.ru:45500',pingInterval: Duration(seconds: 1)); channel.stream.listen((message) { Map<String, dynamic> msg = jsonDecode(message); if (msg["command"]=="who_are_you"){ channel.sink.add('{"command":"who_am_i","user":"10","type":"user"}'); }; }); ... |