如何从其他java控制器向游戏中的Akka参与者发送消息?
我已经用Akka actor实现了一个基本的web套接字示例,这是我在Play framework应用程序控制器中使用的代码:如何从其他java控制器向游戏中的Akka参与者发送消息?,java,playframework,akka,Java,Playframework,Akka,我已经用Akka actor实现了一个基本的web套接字示例,这是我在Play framework应用程序控制器中使用的代码: public static WebSocket<String> socket() { return WebSocket.whenReady((in, out) -> { // create a new UserActor and give it the default stocks to watch final
public static WebSocket<String> socket() {
return WebSocket.whenReady((in, out) -> {
// create a new UserActor and give it the default stocks to watch
final ActorRef messageActor = Akka.system().actorOf(Props.create(MyWebSocketActor.class, out),"SocketActor");
// List<String> defaultStocks = Play.application().configuration().getStringList("default.stocks");
// send all WebSocket message to the UserActor
in.onMessage(message -> {
// parse the JSON into Stock.Watch
messageActor.tell(message, ActorRef.noSender());
});
// on close, tell the userActor to shutdown
in.onClose(() -> {
// kill actor
Akka.system().stop(messageActor);
});
});
}
但我在Akka记录器中收到一条错误消息:
Message from [] to [] was not delivered [1]. Dead letter encountered.
正如我在互联网上发现的,这意味着另一个控制器无法访问参与者,或者参与者不再处于活动状态。
有人建议我设置一个主管作为可能的解决方案,但是,我在java中找到了任何例子。有人能帮我或给我指出一些参考资料吗?我只是在这里猜测,但是您是否也尝试将用户guardian添加到路径:
Akka.system().actorSelection(“/user/SocketActor”)代码>?不,我稍后再试,我会告诉你的。谢谢为什么不在其他地方创建actor并将其ActorRef传递给WebSocket和其他控制器?
Message from [] to [] was not delivered [1]. Dead letter encountered.