Akka Typed actor in play websocket

问题描述 投票:0回答:1

我正在开发一个网络套接字应用程序,并根据其官方教程(https://www.playframework.com/documentation/2.8.x/JavaWebSockets)使用基于actor的网络套接字实现

在控制器中

 public WebSocket socket() {
    System.out.println("socket connecton received");
    return WebSocket.Text.accept(
            request -> ActorFlow.actorRef(WebSocketActor::props, actorSystem, materializer));
}

WebSocketActor通过如下所示的Typed actor实现

public class WebSocketActor extends AbstractBehavior<String> {

但是问题是它给了我以下错误不兼容类型:ActorRef不能转换为ActorRef,看来ActorFlow.actorRef仅允许未类型化的actor。

如何在上面的实现中使用类型化的Actor。

java websocket akka actor playframework-2.3
1个回答
0
投票

[当缺少类型化API时(我认为Play ActorFlow就是这种情况),您可以使用akka.actor.typed.javadsl.Adapter使新的类型化API适应经典类型的API,例如:Adapter.toClassic(typedActorRef)

这里有更多关于类型和经典API共存的文档:https://doc.akka.io/docs/akka/current/typed/coexisting.html

© www.soinside.com 2019 - 2024. All rights reserved.