发送消息给akka类型演员的经典演员系统

9gm1akwq  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(172)

在我的应用程序中,我有经典的演员系统和一个typedGuardian(使用akka类型)。

implicit val system = akka.actor.ActorSystem("my-classic-actor-system")

implicit val typedGuardian: ActorRef[Any] =
  system.spawn(HttpWebsocketServer(), "HttpServer")

Poly.startProcessor(?????)  // pass in WebSocketIn here which is a typed actor

我的akka类型的设置从下面的actor开始,我需要以某种方式将客户端webSockedIn akka类型的actor作为参数传递给我的Poly.startProcessor经典actor。我需要这样做是因为我需要将消息从这个里面发送到webSocketIn,这样我就可以在我的HttpWebsocketServer里面处理这些消息。

HttpWebsocketServer:

    def apply(): Behavior[Any] = {
        Behaviors.setup[Any] { context =>
        implicit val ec: ExecutionContext = context.executionContext

        val system = context.system

        val webSockedIn = context.spawn(websock.WebSocketIn(), "WebSocketIn")

我需要以某种方式将webSockedIn传递给Poly。startProcessor:

object Poly {
  def startProcessor()(implicit system: akka.actor.ClassicActorSystemProvider): Unit = {

有没有可能一个经典的演员系统得到一个akka类型的演员的引用,并发送消息太它?
如果是这样,我应该在哪里产生我的websocketClientIn,这样这将是可能的?

vq8itlhq

vq8itlhq1#

假设您控制了Poly中的实现,则可以让startProcessor通过system.actorSelection("/user/HttpServer")解析typedGuardian/HttpWebsocketServer执行元。
这样,您就可以让HttpServer回答websockedIn的查询消息(例如,通过ask模式)。
比如说
第一个
因此,websockedInFut的未来与由HttpWebsocketServer产生的webSockedIn一起完成。

相关问题