Domanda

Utilizzo le specifiche WAMP.ws per progettare chat room per utenti pubblici/privati ​​sul mio sito web.

Il mio problema sorge quando provo a tenere un elenco di tutti gli utenti connessi.Cosa potrei fare:

  1. Tutti gli utenti si iscrivono all'argomento "/contatti/connessioni".
  2. Quando un utente si connette pubblica un messaggio "ciao" con un argomento "user_id", dicendo agli altri utenti che è connesso.

--> Ma come posso fidarmi degli utenti?Qualsiasi utente può inviare un messaggio "Ciao" con un argomento casuale "user_id".

Per me, il server deve fare alcuni controlli prima di trasmettere il messaggio.Ma è conforme alle specifiche WAMP.js?Ho letto che un messaggio pubblicato viene sempre trasmesso dal server.

Un'altra soluzione potrebbe essere l'utilizzo di una chiamata RPC per connettere un utente.In realtà, l'ho fatto per autenticare gli utenti.Ma il server può trasmettere da solo un evento all'argomento "/contatti/connessioni"?(Dopo una chiamata RPC, non dopo il messaggio di "pubblicazione") Ho letto che l'evento è solo il risultato diretto di una "pubblicazione" del cliente.Inoltre, ciò non impedirebbe agli utenti abituali di inviare eventi tramite l'argomento "/contatti/connessioni", che verrà trasmesso dal server.

Ritengo che le mie due soluzioni (controllo dei messaggi pubblicati prima della trasmissione o trasmissione di un evento dal server dopo una chiamata RPC) infrangono entrambe le specifiche WAMP.js.Ho sbagliato ?

Grazie

È stato utile?

Soluzione

WAMP distingue tra

  1. Autenticazione
  2. Autorizzazione
  3. Validazione

Autenticazione stabilisce l'identità di un client WAMP su un router WAMP.

Quando si usa Autostrada|Python per installare il tuo router WAMP, Qui sono molteplici esempi che mostrano come implementare diversi meccanismi di autenticazione.

Quando si usa Crossbar.io (un router WAMP integrato e pronto per la produzione), i meccanismi di autenticazione sono integrati (Qui).


Autorizzazione determina se un determinato client WAMP è autorizzato a eseguire un'azione WAMP (come pubblicare o chiamare) su un determinato URI.

Quando si usa Autostrada|Python per installare il tuo router WAMP, Qui è un esempio che mostra come implementare l'autorizzazione personalizzata.

Crossbar.io ha uno schema di autorizzazione statico integrato e consente di registrare procedure WAMP personalizzate per l'autorizzazione (Qui).


Finalmente c'è Validazione, che controlla il payload a livello di applicazione di eventi o chiamate.

Qui è un esempio per Autobahn|Python.Crossbar.io consentirà presto di registrare procedure WAMP personalizzate per la convalida.


Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top