根据关于WebSockets的Play文档,建立WebSocket的标准方法是使用
就最小化示例而言,我正在尝试实现这一点:
ActorFlow.actorRef
,该方法接受一个返回我的actor的Props
函数。我的目标是获取对此基础ActorRef
的引用,例如为了发送第一条消息或将ActorRef
传递给另一个actor的构造函数。就最小化示例而言,我正在尝试实现这一点:
class WebSocketController @Inject() (implicit system: ActorSystem, materializer: Materializer) {
def socket = WebSocket.accept[String, String] { request =>
val flow = ActorFlow.actorRef { out => MyWebSocketActor.props(out) }
// How to get the ActorRef that is created by MyWebSocketActor.props(out)?
// Fictitious syntax (does not work)
flow.underlyingActor ! "first message send"
flow
}
}
我怎么才能获取到创建的 actor 的引用呢?
如果此时无法获取 ActorRef
(可能需要将 flow 材料化),那么存储所创建 actor 的引用最简单的方法是什么?
actorRegistry
方法。在我的实际用例中,我已经实现了一个朝着这个方向的解决方案,但生成的代码相当复杂,而且感觉我需要把一个非常简单的逻辑散布到许多不必要的部分中去。 - bluenote10