2015-01-21 12 views
5

Amo crossbar.io e come funziona (personalmente). Ma mi piacerebbe sapere come configurare l'architettura per una tipica applicazione di chat dinamica usando Autobahn (Crossbar.io).Come configurare Autobahn (crossbar.io) per le chat room dinamiche?

La chat dinamica qui indica che ogni chat è stata creata per ciascun URL.

Ad esempio: http://www.myapplication.com/chat?roomId=123, crea una chat room sottoscrizione di argomento "com.myapp.chat123".

http://www.myapplication.com/chat?roomId=456, crea una chat room sottoscrizione di argomento "com.myapp.chat456".

Abbiamo bisogno di memorizzare i messaggi di chat nel database per riferimento futuro, poiché Autobahn non ha la persistenza del messaggio.

Ora le mie domande sono:

  1. Se ogni chat room usare argomento a parte, quindi come potremmo sottoscrivere i messaggi nel server (dal momento che non siamo in grado di iscriversi utilizzando modelli fin d'ora) ?

  2. Poiché utilizzeremo un argomento separato per ogni stanza, come eseguiamo l'autenticazione e l'autorizzazione in Crossbar.io?

  3. Non sono riuscito a trovare la documentazione Javascript per l'impostazione delle funzioni come indicato here. Dove trovarlo?

  4. In this SO answer, è stato detto che crossbar.io fornisce meta-eventi per la sessione di partecipare o lasciare in Router. C'è un modo per sapere quando l'utente si iscrive o disiscrive allo specifico argomento invece di entrare o uscire dal router?

  5. Puoi spiegare come configurare le funzionalità di profilo avanzato disponibili con la versione corrente di Crossbar.io (in Javascript, browser o Node.js)?

  6. Potresti spiegare la funzione Event History in dettaglio? E come configurarlo?

risposta

3

Risponderò alla tua domanda ad uno ad uno:

  1. Almeno, è il vostro cliente che vuole abbonarsi al suo argomento (correggetemi se frainteso), quindi, è necessario memorizzare un elenco di ID argomento relativo all'utente nel database e quando il client si connette al server, gli invii l'elenco dell'ID argomento e gli permetta di sottoscriverli tutti.
  2. Il processo di autenticazione/autorizzazione non ha nulla a che fare con un argomento separato. Si può fare qualcosa di simile:

    • C'è a due vie per l'autenticazione, in forma anonima e WAMP-CRA. Quindi, si assegna un ruolo per i client connessi in modo anonimo e un altro ruolo per il client autenticato (questo ruolo può essere diverso seguendo il database, ad es. Utente, amministratore, moderatore, ...
    • Una volta autenticato, la sottoscrizione a un argomento richiede l'autorizzazione (implementata da un programma di autorizzazione dinamico, è possibile vedere come eseguirla lì: https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/authorization/router.py - in pratica, è lo stesso, tranne che si dimentica la cosa del router e ci si concentra sul metodo di autorizzazione)
    • Quindi, si autorizza in base a qualcosa come Controllo degli accessi.
  3. Sfortunatamente, il documento è abbastanza obsoleto, dovresti chiederlo sulla Mailing List quali funzionalità vuoi usare e come puoi usarle.
  4. Come ricordo, c'è un meta evento su_subscribe/su_unsubscribe.
  5. Le funzioni avanzate possono essere configurate nel file di configurazione di Crossbar, possono anche essere un argomento passato per pubblicare/sottoscrivere/chiamare/registrare chiamate.
  6. Io non sono uno sviluppatore nucleo di Autobahn, ma per quanto ho capito, è una caratteristica che ti danno un modo per ottenere tutti i dati pubblicati precedenti da un argomento (X ultimi quelli, dal un TIMESTAMP , dopo un ID).

so che Autobahn è difficile da seguire a volte a causa di documentazione, ma gli esempi possono aiutare molto, e qui ci sono un sacco di cose interessanti: https://github.com/crossbario/crossbarexamples (tra cui l'autenticazione, MetaAPI, Patterns).

Spero che ho risposto la maggior parte delle vostre domande, ma tuttavia, se ci sono cose che non capisci, io vi consiglio di andare alla mailing list, questa è la tua migliore prova, a mio parere .

Problemi correlati