1
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
}

假设我的初始状态是“Rule1”并且它不断在状态之间切换,如果它在“Rule1”中,它会移动到“Rule2”,反之亦然,基于某些条件它必须将消息发送回呼叫者(发件人)。

感谢你的帮助!

4

2 回答 2

0

是的你可以。FSM 是正常的参与者,其接收已实现以处理状态。

于 2014-09-09T14:38:47.530 回答
0

是的当然!FSM 只是用于定义具有多种状态的 Actor 的扩展(一种“领域特定语言”)。

于 2014-09-09T21:46:28.437 回答