【问题标题】:How to access actor created in a websocket?如何访问在 websocket 中创建的演员?
【发布时间】:2014-08-05 11:45:11
【问题描述】:

我有一个使用 play 2.3 web socket actor 功能创建的 websocket。如何访问创建的actor以在其他功能中发送消息?

def websocket: WebSocket[JsValue, JsValue] = 
  WebSocket.acceptWithActor[JsValue, JsValue] {
    req => out => Props(new MyActor(out))
  }

【问题讨论】:

    标签: scala playframework websocket akka playframework-2.3


    【解决方案1】:

    给你的演员一个经理的参考:

    def websocket: WebSocket[JsValue, JsValue] = 
      WebSocket.acceptWithActor[JsValue, JsValue] {
        req => out => Props(new MyActor(managerRef, out))
      }
    

    并让您的演员在preStart 中向您的经理注册。

    【讨论】:

    • 请您进一步扩展一下。 “注册”是什么意思,当 WebSocket 关闭时会发生什么?经理如何知道它所管理的演员的死亡?抱歉,如果我在这里遗漏了一些明显的东西,我是 Akka 的新手
    • "register" => 在preStart 中,向你的经理发送消息,经理可以做任何事情(例如,将发送者保存在一个集合中)当WebSocket 关闭时,@987654324 @instance 被杀死(by Play)经理可以watchActorContext 中的方法)你的MyActor 实例注册时。
    猜你喜欢
    • 2016-10-12
    • 2021-02-11
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2022-11-07
    相关资源
    最近更新 更多