Введение в WebSocket в Dart
WebSocket держит одно TCP-соединение открытым после рукопожатия. Обе стороны могут слать текстовые кадры в любой момент - без нового HTTP-запроса на каждую фразу. Это удобно для чата, уведомлений и простых игр, где важна быстрая доставка строк туда-обратно.
В Dart для учебных примеров на виртуальной машине
используют пакет dart:io: HTTP-сервер
HttpServer принимает запрос на обновление
до протокола WebSocket, а класс WebSocket
открывает клиентское соединение к адресу
ws://…. Дополнительные пакеты из реестра
не нужны.
Онлайн-редактор DartPad и запуск Dart в браузере
не поднимают такой сервер: там нет полного
dart:io с сокетами. Примеры раздела
запускают командой dart run main.dart
на компьютере, где доступна виртуальная машина.
Типичный сценарий на 127.0.0.1: сервер
слушает свободный порт, клиент подключается к
ws://127.0.0.1:порт, стороны обмениваются
строками через add и обработчик
listen, затем соединение и HTTP-сервер
закрывают явно. Одно соединение остается открытым
между отправкой и приемом - в отличие от разовых
HTTP-запросов.