React Native websocket event.data接收二进制数据时为空数组
Posted
技术标签:
【中文标题】React Native websocket event.data接收二进制数据时为空数组【英文标题】:React Native websocket event.data is empty array when receiving binary 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 是如何处理这个问题的?
【问题讨论】:
【参考方案1】:在这里发帖是因为我找到了解决问题的方法。
上面的代码在 React 或常规 javascript 网页中工作,但在 react native 中我必须添加这一行来将 binaryType 指定为 'blob'
var websocket = new WebSocket("ws://10.10.10.1/stream");
websocket.binaryType = 'blob';
希望这可以帮助以后遇到同样问题的其他人
【讨论】:
以上是关于React Native websocket event.data接收二进制数据时为空数组的主要内容,如果未能解决你的问题,请参考以下文章
react-native WebSocket & nodejs WebSocket
React Native iOS 调试物理设备 WebSocket 连接失败
React Native 和 Websockets (sockets.io) 的 XMLHttpRequest 错误
在 ../node_modules/react-native-stomp-websocket 中找不到 RNStompWS 的 podspec