Sono abbastanza nuovo per Akka e mi piacerebbe avere qualche supporto per una decisione di progettazione per la mia applicazione. Ho un'applicazione client/server piuttosto tipica. All'inizio il client dovrebbe essere in grado di autenticarsi a livello di applicazione e successivamente dovrebbe essere in grado di funzionare in modalità operativa normale. Ci sono anche altro stato come chiusura, scollegato, ecc pp.Akka design per autenticazione (macchina a stati finiti)
Al momento, ho implementato questo usando become()
public class MyServerActor extends UntypedActor {
Procedure<Object> normal = new Procedure<Object>() {
@Override
public void apply(Object msg) {
handleMessage(msg);
}
};
@Override
public void onReceive(Object msg) throws Exception {
if (msg instanceof LoginMessage) {
// do login stuff, assume the login was successful
getContext().become(normal);
}
quindi vorrei usare un diverso Procedure
per uno stato diverso. Tuttavia, nel documento http://doc.akka.io/docs/akka/snapshot/java/fsm.html c'è una descrizione del computer a stati finiti che funziona praticamente come una macchina a stati standard; a seconda dello stato, esegui determinate azioni.
Mi chiedo quale sia l'approccio migliore? O qual è il solito approccio implementando un'applicazione client/server in Akka con java?