Better manage subscriptionCounters (#14608)
Before this change: - unsubscribe() was not called for a disconnection - It seems that WebSocketClient calls connected() and reconnected(). subscriptionCounters were incremented twice for a single reconnection, first from connected() and second from reconnected() This might be a an additional change to https://github.com/tootsuite/mastodon/pull/14579 to recover subscriptions after a reconnect.main
parent
46210a65d1
commit
9669557be1
|
@ -112,11 +112,10 @@ const sharedCallbacks = {
|
||||||
},
|
},
|
||||||
|
|
||||||
disconnected () {
|
disconnected () {
|
||||||
subscriptions.forEach(({ onDisconnect }) => onDisconnect());
|
subscriptions.forEach(subscription => unsubscribe(subscription));
|
||||||
},
|
},
|
||||||
|
|
||||||
reconnected () {
|
reconnected () {
|
||||||
subscriptions.forEach(subscription => subscribe(subscription));
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -252,15 +251,8 @@ const createConnection = (streamingAPIBaseURL, accessToken, channelName, { conne
|
||||||
|
|
||||||
const es = new EventSource(`${streamingAPIBaseURL}/api/v1/streaming/${channelName}?${params.join('&')}`);
|
const es = new EventSource(`${streamingAPIBaseURL}/api/v1/streaming/${channelName}?${params.join('&')}`);
|
||||||
|
|
||||||
let firstConnect = true;
|
|
||||||
|
|
||||||
es.onopen = () => {
|
es.onopen = () => {
|
||||||
if (firstConnect) {
|
|
||||||
firstConnect = false;
|
|
||||||
connected();
|
connected();
|
||||||
} else {
|
|
||||||
reconnected();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
KNOWN_EVENT_TYPES.forEach(type => {
|
KNOWN_EVENT_TYPES.forEach(type => {
|
||||||
|
|
Loading…
Reference in New Issue