연결이 완료된 후 즉시 websocket에 메시지를 보내려고합니다. 그러나 나는 메시지를 전송하는 코드를 어디에 넣어야할지 모른다.즉시 play 's WebSocket에서 메시지 보내기
def ws = WebSocket.async[String] {
val (out, channel) = {
Concurrent.broadcast[String]
}
channel push "message"
request =>
(in, out)
}
본인은 ws
방법을 반환하기 전에 채널에 메시지를 보낼 때, 웹 클라이언트가 메시지를받지 않는 것을 볼 수 있습니다. ws
메서드가 반환 된 후 channel push "message"
코드를 실행하면 제대로 작동하고 브라우저 클라이언트에서 메시지가 수신됩니다. 어떤 Thread.sleep()
으로 시작하여 channel push "message"
을 Future{}
에 배치하여 지연시킬 수 있습니다.
는하지만 거기에 약간의 신뢰성, 비 차단 솔루션 ... 내가 async
는 람다가 Promise[stuff]
를 반환 예상하는 문서에서 볼
이게 나에게 알려주십시오. –
방금 같은 문제가 있었지만 솔루션이 작동한다는 것을 확인했습니다.) 2.2.X에서 '약속'이 '미래'로 바뀌었지만 컨셉이 남아있는 것을 제외하고는 똑같다. – Mik378