Usando websockets per il server "broadcasting"?

5

Voglio rendere possibile la modifica di elenchi di cose da condividere in tempo reale.

Esiste già un'interfaccia REST ed è possibile inviare aggiornamenti al server: aggiungere elementi, contrassegnare gli elementi come completati, ecc.

Affinché il client ottenga immediatamente questi aggiornamenti, ho fatto qualche ricerca, e sembra che l'approccio migliore sarebbe websocket, in quanto sono rapidi e affidabili. Le notifiche push sull'altro lato possono richiedere "alcuni secondi" e non sono affidabili. Penso di aver anche visto qualcosa su "Broadcasting HTTP" che sembrava più adatto a video e cose del genere. Impossibile trovarlo di nuovo.

Quindi mi stavo chiedendo, in primo luogo, se i Websocket sono davvero la soluzione migliore per questo, in secondo luogo, se è una buona pratica utilizzarlo in combinazione con REST - cioè, faccio "push" dal client A al server usando una chiamata REST, quindi eseguire il "push" dal server al client B utilizzando un websocket. Ovviamente il cliente B può anche inviare aggiornamenti al server che devono essere inviati ad A (e ad altri possibili partecipanti). Quindi forse sarebbe più semplice aprire le connessioni websocket per entrambi e buttare fuori il mio codice REST. Dall'altro lato una lista può anche avere solo 1 partecipante (l'utente corrente), nel qual caso una websocket non è necessaria, quindi forse potrei permettere a questi utenti di usare REST e passare a websocket solo quando ci sono più di 1 partecipanti?

Un mix di REST / websocket ha senso per questa applicazione? O dovrei attenermi a uno o all'altro?

    
posta Ixxzz 20.11.2015 - 21:47
fonte

2 risposte

2

Potresti utilizzare tutto 3. Utilizzare l'API REST per inviare informazioni al server, websocket per aggiornamenti immediati e ricorrere alle notifiche push per l'utente finale se l'app non è in esecuzione (e l'utente non è stato avvisato tramite la connessione websocket).

Ovviamente, l'API REST non è strettamente necessaria poiché è possibile eseguire le stesse azioni sul lato server utilizzando i web socket che è possibile utilizzare con l'API REST. Ma se ciò abbia un senso o no dipende davvero dalla tua parte del server. Dato che hai già l'API REST, non c'è alcuna urgenza per te per riscriverlo per i websocket. Ma puoi certamente iniziare la migrazione della funzionalità per utilizzare websockets con l'obiettivo di rimuovere definitivamente l'uso dell'API REST.

    
risposta data 20.11.2015 - 22:18
fonte
0

Se vuoi una soluzione WebSocket completa (non c'è bisogno di REST se non hai già qualche framework REST sul lato server), c'è un'implementazione della demo canonica todo condivisa ToDoMVC da uno degli ingegneri Kaazing che utilizza pub / sub con WebSocket. È scritto in Angular e utilizza un'API di messaggistica universale.

link

    
risposta data 23.11.2015 - 15:55
fonte

Leggi altre domande sui tag