如果未在akka中创建actor,如何将消息传递给另一个actor

时间:2014-11-19 15:57:47

标签: akka

我正在使用actor通过websocket向客户端发送消息。所以连接时每个客户端都有自己的actor。业务逻辑就是这样 actorSystem.actorSelection(s"/user/connections/UserQueues-${userId}") ! Message(content)。 对于某些类型的消息,如果客户端未连接,我需要保留消息,并在客户端连接时重新发送消息。将消息路由到将记住未传递消息的actor的最佳方法是什么?如果用户尚未连接且没有路径s" / user / connections / UserQueues - $ {userId}"在层次结构中。

1 个答案:

答案 0 :(得分:0)

如果您控制websocket演员,您可以确认收到此消息,如果它没有确认您又一次又重新发送。 Akka已经在akka-persistence的AtLeastOnceDelivery中建立了对此的支持,以及如何使用它AtLeastOnceDelivery example in docs

长话短说,您需要从使用!切换到deliver(destination, deliveryId => Msg(deliveryId, s)),然后找到确认此消息已发送的方法(将确认发送回发件人,然后调用{{ 1}}在里面)。

希望这有帮助!