Max*_*ner 1 javascript websocket react-native
我正在尝试在 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() {
...
}
};
Run Code Online (Sandbox Code Playgroud)
记录的事件对象如下所示:
{data: [], istrusted: false}
Run Code Online (Sandbox Code Playgroud)
event.data 记录为未定义
我可以正常连接并发送消息,但无法接收消息。我有相同的 websocket 连接在 web 应用程序中工作正常,所以我知道 websocket 服务器正在发送正确的数据,但由于某种原因,我在使用 React Native 时无法获取传入的消息数据。
React Native 处理这个问题的方式有什么具体的吗?
在这里发帖是因为我找到了解决问题的方法。
上面的代码适用于 React 或常规 javascript 网页,但在 React Native 中我必须添加此行以将二进制类型指定为“blob”
var websocket = new WebSocket("ws://10.10.10.1/stream");
websocket.binaryType = 'blob';
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助其他人以后遇到同样的问题