React Native websocket event.data - пустой массив при получении двоичных данных - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь использовать подключение к веб-сокету в приложении React Native для получения двоичных данных, мой код веб-сокета выглядит следующим образом:

var websocket = new WebSocket("ws://10.10.10.1/stream")

websocket.onmessage = (event) => {
        console.log(event);
        console.log(event.data);

        var reader = new FileReader();
        reader.readAsText(event.data, "UTF-8");

        reader.onload = function() {
         ...
        }
}; 

Зарегистрированный объект события выглядит следующим образом:

{data: [], istrusted: false}

event.data регистрируется как неопределенное

Я могу подключиться и нормально отправлять сообщения, но не могу получать сообщения. У меня такое же соединение с веб-сокетом, которое отлично работает в веб-приложении, поэтому я знаю, что сервер веб-сокетов отправляет правильные данные, но по какой-то причине я не могу получить данные входящего сообщения при использовании React Native.

Есть ли что-то конкретное c с тем, как React Native справляется с этим?

1 Ответ

0 голосов
/ 31 марта 2020

Публикация здесь, потому что я нашел решение своей проблемы.

Приведенный выше код работает на веб-странице React или обычной javascript, но в native-режиме реагирования мне пришлось добавить эту строку, чтобы указать в качестве значения типа text "blob"

var websocket = new WebSocket("ws://10.10.10.1/stream");
websocket.binaryType = 'blob';

Надеюсь, это кому-нибудь поможет еще с той же проблемой позже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...