1
我試圖通過React-Native中的Websocket連接來連接到Watson TTS API。連接已建立,我可以向服務器發送消息,但是我以某種方式從服務器返回的數據總是空的。React-Native Websocket事件數據屬性丟失
好像event.data屬性完全缺失。如果我在react-native中將它登錄到控制檯,我會得到'undefined'。如果我在瀏覽器中使用相同的代碼,一切正常。
我使用的反應原生0.33,這裏是我的代碼:
function connectTTS(token) {
var voice = "de-DE_BirgitVoice";
var format = 'audio/basic';
var token = token;
var wsURI = "wss://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=" + voice + "&watson-token=" + token;
function onOpen(evt) {
var message = {
text: "Hello world.",
accept: format
};
// note: the Text to Speech service currently only accepts a single message per WebSocket connection
websocket.send(JSON.stringify(message));
}
var audioParts = [];
var finalAudio;
function onMessage(evt) {
console.log(evt.data);
if (typeof evt.data === 'string') {
console.log('Received string message: ', evt.data)
} else {
console.log('Received ' + evt.data.size + ' binary bytes', evt.data.type);
audioParts.push(evt.data);
}
}
function onClose(evt) {
console.log('WebSocket closed', evt.code, evt.reason);
console.log(audioParts);
console.log(format);
finalAudio = new Blob(audioParts, {type: format});
console.log('final audio: ', finalAudio);
}
function onError(evt) {
console.log('WebSocket error', evt);
}
var websocket = new WebSocket(wsURI);
websocket.onopen = onOpen;
websocket.onclose = onClose;
websocket.onmessage = onMessage;
websocket.onerror = onError;
}
這將是巨大的,如果有人有更多的反應本地/ WebSocket的經驗能幫助我找到解決方案。謝謝。