Auto reconnect to Mastodon WebSocket if it fails
This commit is contained in:
parent
52c7922002
commit
45eeb550b3
@ -78,7 +78,7 @@ export class TimelineReader {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private constructor() {
|
private startWebsocket() {
|
||||||
const socket = new WebSocket(`wss://${MASTODON_INSTANCE}/api/v1/streaming`);
|
const socket = new WebSocket(`wss://${MASTODON_INSTANCE}/api/v1/streaming`);
|
||||||
socket.onopen = () => {
|
socket.onopen = () => {
|
||||||
socket.send('{ "type": "subscribe", "stream": "public:local"}');
|
socket.send('{ "type": "subscribe", "stream": "public:local"}');
|
||||||
@ -113,13 +113,25 @@ export class TimelineReader {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
socket.onclose = (event) => {
|
socket.onclose = (event) => {
|
||||||
console.log('Closed', event, event.code, event.reason);
|
console.warn(
|
||||||
|
`Websocket connection to ${MASTODON_INSTANCE} closed. Code: ${event.code}, reason: '${event.reason}'`
|
||||||
|
);
|
||||||
|
setTimeout(() => {
|
||||||
|
console.info(`Attempting to reconenct to WS`);
|
||||||
|
this.startWebsocket();
|
||||||
|
}, 10000);
|
||||||
};
|
};
|
||||||
socket.onerror = (event) => {
|
socket.onerror = (event) => {
|
||||||
console.log('error', event, event.message, event.error);
|
console.error(
|
||||||
|
`Websocket connection to ${MASTODON_INSTANCE} failed. ${event.type}: ${event.error}, message: '${event.message}'`
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private constructor() {
|
||||||
|
this.startWebsocket();
|
||||||
|
}
|
||||||
|
|
||||||
public static init() {
|
public static init() {
|
||||||
if (this._instance === undefined) {
|
if (this._instance === undefined) {
|
||||||
this._instance = new TimelineReader();
|
this._instance = new TimelineReader();
|
||||||
|
Loading…
Reference in New Issue
Block a user