Utilizziamo Google Pub / Sub per i flussi di eventi che vogliamo vengano utilizzati da client Websocket transitori. Qual è un buon modello per creare abbonamenti e pulirli quando il client non è più connesso? Il caso d'uso principale è un portale di amministrazione in cui vogliamo aggiornare la visualizzazione in tempo reale in base agli eventi di modifica dei dati.
Pensieri iniziali:
- I client non si ripuliscono in modo affidabile dopo l'arresto all'arresto, quindi le sottoscrizioni dovrebbero essere ripulite esternamente in qualche modo quando i client scompaiono
- Ogni nodo server potrebbe creare una sottoscrizione di argomenti all'avvio e ritrasmettere i messaggi ai client interessati, ma la seconda parte sembra un po 'come costruire una nuova coda di messaggi
- Nel caso di (2), abbiamo ancora un problema di pulizia se i nodi si bloccano senza cancellare la loro sottoscrizione (anche se molto meno di creare una sottoscrizione per ogni client websocket)
Esiste un modello di architettura comune (o progetto esistente) che risolve questo problema?