16
在我遷移到Play 2.5.x之前,我經常使用WebSocket.acceptWithActor
。現在我不能讓我的網絡套接字在使用不同的輸入和輸出時保持打開狀態,在我的情況下,輸入是字符串,輸出是JsValue。什麼是Play 2.5.x等價於acceptWithActor [String,JsValue]?
播放2.5.X之前我接收器:
object Application extends Controller {
def myWebSocket = WebSocket.acceptWithActor[String, JsValue] { request =>
out => MyActor.props(out)
}
我在玩2.5.X接收器:
@Singleton
class Application @Inject() (implicit system: ActorSystem, materializer: Materializer) extends Controller {
implicit val messageFlowTransformer =
MessageFlowTransformer.jsonMessageFlowTransformer[String, JsValue]
def myWebSocket = WebSocket.accept[String, JsValue] { request =>
ActorFlow.actorRef(out => MyActor.props(out))
}
}
在我的演員preStart
被稱爲緊接着postStop
,所以這顯然是不正確,但我似乎無法在文檔中找到任何解決方案(https://www.playframework.com/documentation/2.5.x/ScalaWebSockets)。 如果我使用WebSocket.accept[String, String]
,則插座保持打開狀態。
我在做什麼錯?
嗨,你找到解決辦法嗎? – SergiGP
不幸的是,我使用'WebSocket.accept [String,String]' –
去看看我的答案,它很髒,但也許它可以爲你工作:) – SergiGP