在 Akka FSM 中覆盖 `receive` 是否安全?

Is it safe to override `receive` in an Akka FSM?

我用 Akka 创建了一个 FSM。但是,我的 FSM 不仅会传递与其 FSM 状态相关的消息。它的 children 也可能将 ActorRef 传递给它,然后我的 FSM 应该进一步传递给它的 parent。由于 Akka 中的 FSM(自然地)也是演员,我想覆盖 receive 来捕捉那些 ActorRefs。但是,这样做会破坏 actor 的 FSM 功能。处理这种情况的正确方法是什么?

与任何 FSM 状态无关的消息可以在 whenUnhandled 中处理:

whenUnhandled {
  case Event(someActorRef: ActorRef, _) =>
    context.parent ! someActorRef
    stay()
}

不过,据我所知,覆盖 receive 也应该有效。