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"}');
     };
  });

...

Flutter: полноэкранный режим

В ранних версиях Flutter (до 3), полноэкранный режим приложения можно было выставить при помощи пакета Utils. Теперь же одним из вариантов может быть или пакет window_manager:

 WidgetsFlutterBinding.ensureInitialized();
  // Must add this line.
  await windowManager.ensureInitialized();

  // Use it only after calling hiddenWindowAtLaunch
  windowManager.waitUntilReadyToShow().then((_) async{
    // Hide window title bar
    await windowManager.setFullscreen(true);
  });

Или при помощи Flamer:

WidgetsFlutterBinding.ensureInitialized();
  await Flame.device.fullScreen();
  await Flame.device.setLandscape();

Однако ни тот ни другой способ не работают под Windows. Посему вопрос остается открытым..