我对 Akka 很陌生,我很想为我的应用程序的设计决策提供一些支持。我有一个相当典型的客户端/服务器应用程序。在开始时,客户端应该能够在应用程序级别进行身份验证,之后应该能够在正常操作模式下运行。还有其他状态,例如关闭,断开连接等。pp。
目前,我使用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);
}
所以我会Procedure
为不同的状态使用不同的。但是,在http://doc.akka.io/docs/akka/snapshot/java/fsm.html的文档中,有一个有限状态机描述,它几乎像标准状态机一样工作;根据状态做某些动作。
我想知道哪种方法更好?或者在 Akka 中使用 java 实现客户端/服务器应用程序的常用方法是什么?