Flutter: работа с WebSocket
Получение данных по протоколу http/http как уже описывал это конечно хорошо, НО! обмен «онлайн» гораздо интереснее. Чтобы сервер в любой момент мог отправить информацию в приложение. И есть решение: при запуске приложения устанавливать соединен с сервером Websocket и дальше уже обменивать информацией по этому протоколу.
Пакет:
dependencies:
web_socket_channel: ^2.2.0
Пример кода:
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"}');
};
});
...