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.
This commit is contained in:
		@@ -112,11 +112,10 @@ const sharedCallbacks = {
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  disconnected () {
 | 
			
		||||
    subscriptions.forEach(({ onDisconnect }) => onDisconnect());
 | 
			
		||||
    subscriptions.forEach(subscription => unsubscribe(subscription));
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  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('&')}`);
 | 
			
		||||
 | 
			
		||||
  let firstConnect = true;
 | 
			
		||||
 | 
			
		||||
  es.onopen = () => {
 | 
			
		||||
    if (firstConnect) {
 | 
			
		||||
      firstConnect = false;
 | 
			
		||||
      connected();
 | 
			
		||||
    } else {
 | 
			
		||||
      reconnected();
 | 
			
		||||
    }
 | 
			
		||||
    connected();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  KNOWN_EVENT_TYPES.forEach(type => {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user