diff --git a/src/index.jsx b/src/index.jsx index 0e1ff4f668..dac6f72e8b 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -74,7 +74,7 @@ build: ${__JF_BUILD_VERSION__}`); } // Initialize automatic (default) cast target - initializeAutoCast(ServerConnections.currentApiClient()); + initializeAutoCast(); // Load the translation dictionary await loadCoreDictionary(); diff --git a/src/scripts/autocast.js b/src/scripts/autocast.js index 16f5865723..65d7b19de7 100644 --- a/src/scripts/autocast.js +++ b/src/scripts/autocast.js @@ -1,3 +1,4 @@ +import ServerConnections from 'components/ServerConnections'; import { playbackManager } from '../components/playback/playbackmanager'; import Events from '../utils/events.ts'; @@ -43,16 +44,15 @@ function onOpen() { }); } -export function initialize(apiClient) { - if (apiClient) { - if (apiClient.isWebSocketOpen()) { - console.debug('[autoCast] connection ready'); - onOpen(); - } else { - console.debug('[autoCast] initializing connection listener'); - Events.on(apiClient, 'websocketopen', onOpen); - } - } else { - console.warn('[autoCast] cannot initialize missing apiClient'); - } +export function initialize() { + console.debug('[autoCast] initializing connection listener'); + ServerConnections.getApiClients().forEach(apiClient => { + Events.off(apiClient, 'websocketopen', onOpen); + Events.on(apiClient, 'websocketopen', onOpen); + }); + + Events.on(ServerConnections, 'apiclientcreated', (e, apiClient) => { + Events.off(apiClient, 'websocketopen', onOpen); + Events.on(apiClient, 'websocketopen', onOpen); + }); }