繁体   English   中英

如何将消息发送到我的Akka actor系统的事件流,而不将消息特别发送给任何actor?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM