Streaming: fail gracefully when WebSocket construction fails (mainly for Bromite browser)

This commit is contained in:
Alex Gleason 2021-10-20 16:36:38 -05:00
parent 0b94774fbe
commit 97cc7eb804
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7

View file

@ -26,37 +26,45 @@ export function connectStream(path, pollingRefresh = null, callbacks = () => ({
} }
}; };
const subscription = getStream(streamingAPIBaseURL, accessToken, path, { let subscription;
connected() {
if (pollingRefresh) {
clearPolling();
}
onConnect(); // If the WebSocket fails to be created, don't crash the whole page,
}, // just proceed without a subscription.
try {
subscription = getStream(streamingAPIBaseURL, accessToken, path, {
connected() {
if (pollingRefresh) {
clearPolling();
}
disconnected() { onConnect();
if (pollingRefresh) { },
polling = setTimeout(() => setupPolling(), randomIntUpTo(40000));
}
onDisconnect(); disconnected() {
}, if (pollingRefresh) {
polling = setTimeout(() => setupPolling(), randomIntUpTo(40000));
}
received(data) { onDisconnect();
onReceive(data); },
},
reconnected() { received(data) {
if (pollingRefresh) { onReceive(data);
clearPolling(); },
pollingRefresh(dispatch);
}
onConnect(); reconnected() {
}, if (pollingRefresh) {
clearPolling();
pollingRefresh(dispatch);
}
}); onConnect();
},
});
} catch (e) {
console.error(e);
}
const disconnect = () => { const disconnect = () => {
if (subscription) { if (subscription) {