2013-05-19 5 views
5

Ho 40 categorie e ogni categoria ha 10-100 sottocategorie. Per impostazione predefinita, l'utente ascolta tutte le categorie e sottocategorie. Voglio dare a ciascun utente la possibilità di scegliere di separare l'intera categoria o da una sottocategoria specifica. Quindi, adesso quello che ho è ogni categoria è un canale, e ogni sottocategoria è un evento.Qual è il modo migliore per ascoltare molti canali ed eventi utilizzando Pusher

Ora, ho qualcosa come ogni utente è legato a 2000-3000 eventi, e so che questo è sbagliato, quindi qual è il modo giusto per consentire all'utente di filtrare tra 3000 eventi? Va bene legarsi a tanti eventi?

+0

Penso che usare l'evento sia abbastanza normale, si può avere molto, ma si basa sulle prestazioni del cliente. A proposito, l'ottimizzazione può essere nel modo in cui i tuoi eventi sono cablati. – SmasherHell

+0

@SmasherHell cosa intendi per cavo? –

+0

è possibile definire eventi per funzione anonima (ad esempio: element.onclick = function() {};) o definire una funzione che può gestire diversi eventi (ad esempio: element.onclick = event_handler;) – SmasherHell

risposta

4

È importante ricordare che quando si iscrive a un canale tutti gli eventi per il canale verranno inviati al client (Pusher - client), anche se non si è legati all'evento.

Con le informazioni di cui sopra in mente, consiglierei di usare i canali per filtrare i dati. L'overhead durante l'iscrizione a un canale non è eccezionale. Ad esempio, l'iscrizione a 40 canali non rappresenterebbe un utilizzo significativo delle risorse. Dovrai considerare se i canali sono pubblici (chiunque può iscriversi) o private dove ogni chiamata a pusher.subscribe('private-channel-x'); comporterà uno authentication request sul tuo server. C'è un multi-auth plugin che consente il batching delle richieste di autenticazione.

Una soluzione consiste nell'avere che ogni utente si iscriva al proprio canale di notifica e invii loro eventi per le cose a cui sono interessati su quel singolo canale. È possibile utilizzare la funzionalità multi publish per questo, che consente di inviare lo stesso evento su molti canali. Questo può essere utile se desideri inviare lo stesso evento a più utenti. Tuttavia, questa soluzione potrebbe non essere elegante dal punto di vista dell'architettura delle informazioni.

La soluzione migliore qui dipende davvero dalla vostra applicazione. Ma con quanto sopra ora hai tutti i fatti che ti permetteranno di fare la scelta più efficiente.

+0

Il collegamento a "funzionalità multi subscribe" non è più attivo Ci sono novità su questo fronte? – technoTarek

+0

@technoTarek dai un'occhiata a https://github.com/pusher/pusher-js#batching-auth-requests-aka-multi-auth – leggetter

Problemi correlati