Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpWsCln 212 of 224 menu
◀ ▶

Клиент WebSocket в Dart

Клиент открывают через WebSocket.connect со строкой адреса и схемой ws. Метод возвращает Future: после await рукопожатие завершено и соединение готово к обмену строками.

Отправка текста - вызов add с английской фразой. Сервер в фоне принимает кадр; клиент может не обрабатывать ответ, если задача - только доставка:

import 'dart:async'; import 'dart:io'; void main() async { var sent = Completer<void>(); var httpServer = await HttpServer.bind( InternetAddress.loopbackIPv4, 0, ); var port = httpServer.port; httpServer.listen((request) async { if (WebSocketTransformer.isUpgradeRequest( request, )) { var socket = await WebSocketTransformer.upgrade( request, ); socket.listen((data) { sent.complete(); }); } }); var client = await WebSocket.connect( 'ws://127.0.0.1:$port', ); client.listen((data) {}); client.add('ping'); await sent.future; await client.close(); await httpServer.close(force: true); }

Адрес собирают после привязки сервера: порт подставляют в строку ws://127.0.0.1:…. Другой текст кладут в add без смены остального каркаса:

import 'dart:async'; import 'dart:io'; void main() async { var sent = Completer<void>(); var httpServer = await HttpServer.bind( InternetAddress.loopbackIPv4, 0, ); var port = httpServer.port; httpServer.listen((request) async { if (WebSocketTransformer.isUpgradeRequest( request, )) { var socket = await WebSocketTransformer.upgrade( request, ); socket.listen((data) { sent.complete(); }); } }); var client = await WebSocket.connect( 'ws://127.0.0.1:$port', ); client.listen((data) {}); client.add('hello'); await sent.future; await client.close(); await httpServer.close(force: true); }

Подключитесь к локальному серверу и передайте строку "time". Сервер должен принять один кадр.

Отправьте на localhost текст "job 3" после успешного рукопожатия.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить