Juggernaut / Socket.io e abbonamento a canale singolo autentico
-
27-10-2019 - |
Domanda
Sono nuovo a Node JS e Socket IO, ma ho sentito molte cose buone su di loro, quindi volevo dare un'occhiata a loro da utilizzare come sistema di notifica in tempo reale.
Nel mio scenario, un utente aprirà una presa per ascoltare le notifiche pubblicate all'utente: ogni utente aprirà una connessione alle proprie notifiche, non a un canale "pubblico".
var jug = new Juggernaut;
var channel = "/user/" + userId + "/notifications";
jug.subscribe(channel, function(data){
console.log("Got data: " + data);
});
Quindi in quasi tutti i casi sarà 1 utente che si iscriverà a 1 canale.
Ho 2 preoccupazioni:
- Tutti gli esempi di Juggernaut che ho visto coinvolgono più clienti che si iscrivono a 1 canale-questo mi fa pensare che non sia progettato per essere utilizzato per le comunicazioni 1-1.
- Esiste un modo per aggiungere l'autenticazione in modo che solo gli utenti specificati ricevano il messaggio (cioè l'utente attualmente accessibile è l'unico che può iscriversi al suo canale di notifica). Se ci fosse un modo per passare dati aggiuntivi sull'abbonamento, probabilmente sarebbe sufficiente (hash l'ID utente e usarlo come segno forse?).
Qualcuno ha qualche esperienza con il juggernaut che potrebbe aver incontrato questo scenario prima?
Soluzione
Tutti gli esempi di juggernaut che ho visto coinvolgono più clienti che si iscrivono a 1 canale
Qual è la differenza tra molti abbonati e un abbonato all'editore?
C'è un modo per aggiungere autenticazione in modo che solo gli utenti specificati ricevano il messaggio
Sicuro. Richiedi al canale di avere l'autenticazione e poiché sarà da UserId, allora conosci già le cose necessarie per proteggerlo.
Per quanto riguarda come far sì che Juggernaut faccia autenticazione, sembra che tu possa pubblicare intestazioni host per gestirlo per te.