【发布时间】:2015-10-23 08:45:28
【问题描述】:
我有这个特征的基本特征和子类。每个子类都使用自己的事件类订阅事件流。例如 ActorFSM1 关心 InitEventImpl1 所以它会订阅这个事件。 但是,当我发布这些特定事件时,没有演员会收到它们。
trait InitEvent
case class InitEventImpl1 extends InitEvent
case class InitEventImpl2 extends InitEvent
class ActorFSM[T <: InitEvent] extends FSM[s, Data] {}
class ActorFSM1 extends ActorFSM[InitEventImpl1] {
context.system.eventStream.subscribe(self, classOf[InitEventImpl1] )
}
class ActorFSM2 extends ActorFSM[InitEventImpl2] {
context.system.eventStream.subscribe(self, classOf[InitEventImpl2] )
}
当我尝试如下发布它们时,没有人收到消息。我究竟做错了什么?
val system = ActorSystem("system")
val actor = system.actorOf(Props(new ActorFSM1()) )
system.eventStream.publish(InitEventImpl1())
【问题讨论】:
-
当您发布该事件时,
ActorFSM1实例处于什么状态?该状态是否将该消息类型作为Event处理?
标签: scala akka actor publish-subscribe fsm