fix: controller is already closed trpc subscription observable error (#743)

This commit is contained in:
Meier Lukas
2024-07-03 20:31:06 +02:00
committed by GitHub
parent f557fbbae1
commit 41dba7b516
6 changed files with 33 additions and 12 deletions

View File

@@ -25,15 +25,21 @@ export const mediaServerRouter = createTRPCRouter({
.unstable_concat(createManyIntegrationMiddleware("jellyfin", "plex"))
.subscription(({ ctx }) => {
return observable<{ integrationId: string; data: StreamSession[] }>((emit) => {
let isConnectionClosed = false;
for (const integration of ctx.integrations) {
const channel = createItemAndIntegrationChannel<StreamSession[]>("mediaServer", integration.id);
void channel.subscribeAsync((sessions) => {
if (isConnectionClosed) return;
emit.next({
integrationId: integration.id,
data: sessions,
});
});
}
return () => {
isConnectionClosed = true;
};
});
}),
});