Flutter: WebSocketChannelException/HttpException при подключении к точке доступа ESP32 на Android (Ping работает, соединAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Flutter: WebSocketChannelException/HttpException при подключении к точке доступа ESP32 на Android (Ping работает, соедин

Сообщение Anonymous »

Я разрабатываю приложение Flutter для связи с ESP32, выступающим в качестве точки доступа (AP). ESP32 имеет статический IP-адрес 192.168.1.1 и использует HTTP-сервер и сервер WebSocket на порту 80.
Проблема: Мое устройство Android (Hisense H50, Android 10) подключается к ESP32 WiFi. Я могу успешно пинговать ESP32 с устройства, но когда я пытаюсь подключиться через пакет web_socket_channel или http, я получаю следующую ошибку: Необработанное исключение: WebSocketChannelException: HttpException: Соединение закрыто до получения полного заголовка, uri = http://192.168.1.1:0 (или иногда соединение отклонено).
Что Я пробовал:
  • AndroidManifest.xml: Добавлены разрешения INTERNET, ACCESS_FINE_LOCATION и ACCESS_NETWORK_STATE.
  • Открытый текст: Включено android:usesCleartextTraffic="true" в манифесте.
  • Мобильные данные: я отключил мобильные данные, чтобы трафик проходил через Wi-Fi.
  • Конфигурация сетевой безопасности: Добавлен файл network_security_config.xml, чтобы разрешить открытый текст для 192.168.1.1.
  • Тестирование: Стороннее приложение «WebSocket Tester» также завершается с ошибкой «Соединение отклонено».
Фрагмент кода Flutter:
Dart

Код: Выделить всё

final uri = Uri.parse("ws://192.168.1.1:80");
channel = WebSocketChannel.connect(uri);
channel!.stream.listen((event) => print(event), onError: (e) => print(e));
Прошивка (ESP32): ESP32 использует WiFi.softAP и server.listen(80).
Почему соединение немедленно отклоняется или закрывается, если устройство доступно через ping? Есть ли специфичное для Android ограничение для локальных сетей без Интернета, которое мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/799 ... esp32-ap-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»