attori in un handshake di protocollo sequenziale

0

Sono nuovo per gli attori e sto cercando di implementare un handshake di protocollo molto sequenziale (tramite websocket). Questo è in Scala / Akka.

Va qualcosa del genere:

  1. La connessione HTTP viene stabilita e aggiornata a websocket
  2. Il cliente dice CIAO
  3. Il server risponde CIAO
  4. Il client dice che voglio usare il subprotocollo X o Y
  5. Il server dice che supporto Y e inizierò ad usarlo
  6. Il client inizia a parlare usando il sottoprotocollo Y

La mia domanda è una pratica adeguata sul lato server. Dovrei avere un singolo attore per la connessione, che viene aggiornato con lo stato dell'handshake (ad esempio, con una sequenza come CONNECTED- > RECEIVED_HELLO- > RECEIVED_OFFER- > BEGIN_SUBPROTOCOL- > .. (funziona). .- > CLOSE_CONNECTION) utilizzando i messaggi da auto e amp; chiedere?

O c'è un modello migliore per l'inizializzazione di un tale protocollo seriale / sincrono?

    
posta Will I Am 11.12.2014 - 18:45
fonte

1 risposta

1

Prima di tutto, dai un'occhiata a akka.io . Fornisce l'elaborazione basata sugli attori per le esigenze di input e output. Esistono numerosi buoni esempi di creazione di server che utilizzano akka.io e vale la pena studiarli.

Per rispondere a una parte della tua domanda ...

Crei un attore la cui unica responsabilità è quella di impostare e mantenere la connessione. Avrebbe ricevuto i messaggi HELLO e avrebbe risposto in modo appropriato fino a quando tutti fossero soddisfatti. Il tuo server attuale si trova a valle di questo attore; ha solo bisogno di sapere che il protocollo è stato soddisfatto e una connessione stabilita, e può inviare e ricevere dati.

Separando le preoccupazioni del protocollo dal servire le preoccupazioni, il tuo primo attore ha una sola responsabilità. È quindi possibile sostituire qualsiasi altro attore per implementare quel protocollo o persino implementare un nuovo protocollo, senza influenzare il server di uno iota.

    
risposta data 24.12.2014 - 23:17
fonte

Leggi altre domande sui tag