【问题标题】:React Native websocket event.data is empty array when receiving binary dataReact Native websocket event.data接收二进制数据时为空数组
【发布时间】:2020-03-30 21:31:52
【问题描述】:

我正在尝试在 React Native 应用程序中使用 websocket 连接来接收二进制数据,我的 websocket 代码如下所示:

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 记录为未定义

我可以正常连接并发送消息,但无法接收消息。 我有相同的 websocket 连接在 web 应用程序中工作正常,所以我知道 websocket 服务器正在发送正确的数据,但由于某种原因,我在使用 React Native 时无法获取传入的消息数据。

React Native 是如何处理这个问题的?

【问题讨论】:

    标签: javascript react-native websocket


    【解决方案1】:

    在这里发帖是因为我找到了解决问题的方法。

    上面的代码在 React 或常规 javascript 网页中工作,但在 react native 中我必须添加这一行来将 binaryType 指定为 'blob'

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

    希望这可以帮助以后遇到同样问题的其他人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多