Sun*_*Lee 6 javascript websocket react-native
我正在尝试使用React Native中的Websocket发送blob数据.
我的React本机和Web代码如下:
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'}));
}
Run Code Online (Sandbox Code Playgroud)
在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…}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Websocket正确发送blob数据?
遗憾的是 React Native 在 js 端不使用支持二进制数据。请参阅此问题https://github.com/facebook/react-native/issues/1424。
您可以尝试将 blob 编码为 base64 字符串,虽然效率较低,但总比没有好。
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |