[英]How can I send a message to my akka actor system's event stream without addressing the message to any actor in particular?
我感兴趣的是实现:1. akka演员A
,它向事件流发送消息; 2. akka演员L
,侦听事件流上已发布的某种类型的消息。
如果可能的话,我想重新利用actor系统的事件流。
我知道该怎么做2。在这里进行说明: https : //doc.akka.io/docs/akka/2.5/event-bus.html#event-stream
但是我该怎么办1?
我知道如何使A
发送发给另一个演员(Ref)的消息,但我不想将消息发送给任何特定的演员(Ref)。 我只希望消息出现在事件流中,并由正在收听该类型消息的任何人接收。 这有可能吗?
一个附带的问题:如果我按照https://doc.akka.io/docs/akka/2.5/event-bus.html#event-stream中的说明实现2,那么侦听器是否知道谁发送了消息?
根据您发布的文档链接,您可以将消息发布到EventStream:
system.eventStream.publish(Jazz("Sonny Rollins"))
消息将传递给所有订阅此消息类型的参与者:
system.eventStream.subscribe(jazzListener, classOf[Jazz])
为了使订阅者了解发件人,我建议您在有效负载中定义一个ActorRef字段,并且发件人可以在发布消息时将其自引用放入其中。 注意:在新的akka型库中,如何在消息类型中明确定义发送者的ActorRef,是如何处理所有Actor交互,因此习惯这种模式是个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.