class RulesFSMActor extends Actor with FSM[State, Data]{
When(Rule1)
{
case Event(CASE_MSG1, Data) =>
if (<someconditon>)
goto(Rule2)
}
When(Rule2)
{
case Event(CASE_MSG2, Data) =>
if (<someconditon>){
sender ! MessgeBackToCaller" // Is it allowed to use "sender" ?
goto(Rule1)
}
}
//unhandled ,...etc
}
假设我的初始状态是&#34; Rule1&#34;并且它一直在状态之间切换,如果它在&#34; Rule1&#34; ,它转移到&#34; Rule2&#34;反之亦然,根据某些条件,它必须将消息发送回呼叫者(发件人)。
感谢您的帮助!
答案 0 :(得分:0)
是的,你可以。 FSM是正常的角色,其接收是为处理状态而实施的。
答案 1 :(得分:0)
是的,当然! FSM只是用于定义具有多个状态的Actors的扩展(“域特定语言”)。