【发布时间】:2025-12-01 14:50:01
【问题描述】:
在迁移到 Play 2.5 时,我正在尝试实现新的 WebSocket 功能,如 here(使用演员处理 WebSocket)所述。在 Play 2.5.4 中没有 play.libs.streams.ActorFlow(如示例所示),而只有 play.api.libs.streams.ActorFlow。但是当我写这段代码时:
public class MyController extends Controller {
private final ActorSystem actorSystem;
private final Materializer materializer;
@Inject
public MyController(ActorSystem actorSystem, Materializer materializer) {
this.actorSystem = actorSystem;
this.materializer = materializer;
}
public WebSocket socket() {
return WebSocket.Text.accept(request ->
return ActorFlow.<String, String>actorRef(MyWebSocketActor::props, 256, OverflowStrategy.dropHead(),
actorSystem, materializer
)
);
}
}
编译器给我一个错误:
类型不匹配:无法从 Flow
<String,String,capture#1-of ?> to Flow<String,String,?>转换
有人可以解释一下如何在 2.5 中实现这种方法吗?为什么会出现这个错误?
【问题讨论】:
标签: java playframework akka-stream playframework-2.5 type-mismatch