我正在尝试使用React Native中的Websocket发送blob数据。
我的React本机和网络代码如下:
var websocket = new WebSocket(this.state.wsURI);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
function onClose(evt){
console.log('disconnected');
}
function onOpen(evt) {
var message = {
action: 'start',
'content-type': 'audio/wav',
};
websocket.send(JSON.stringify(message));
websocket.send(blob);
websocket.send(JSON.stringify({action: 'stop'}));
}
在Web应用程序中,blob数据发送良好。但是在React Native App中,会出现错误消息(Websocket.send的Unsupported dataType)。
本地反应中blob的控制台日志是
Blob {listeners: Object, isRNFetchBlobPolyfill: true, multipartBoundary: null, _ref: "/Users/somepath/...-4454330B7F04/Documents/audio.wav", _blobCreated: true…}
有没有办法使用Websocket正确发送blob数据?
答案 0 :(得分:0)
可悲的是,React Native在js端未使用支持二进制数据。请参见此问题https://github.com/facebook/react-native/issues/1424。
您可以尝试将blob编码为base64字符串,效率较低,但总比没有好。