Это довольно простой вопрос, но я не мог найти удовлетворительного ответа после поисков в течение нескольких часов. Из примера в здесь способ создания веб-сокета выглядит примерно так:
Код контроллера:
import play.api.mvc._
import play.api.libs.streams.ActorFlow
import javax.inject.Inject
import akka.actor.ActorSystem
import akka.stream.Materializer
class Application @Inject()(cc:ControllerComponents) (implicit system: ActorSystem, mat: Materializer) extends AbstractController(cc) {
def socket = WebSocket.accept[String, String] { request =>
ActorFlow.actorRef { out =>
MyWebSocketActor.props(out)
}
}
}
Код актера:
import akka.actor._
object MyWebSocketActor {
def props(out: ActorRef) = Props(new MyWebSocketActor(out))
}
class MyWebSocketActor(out: ActorRef) extends Actor {
def receive = {
case msg: String =>
out ! ("I received your message: " + msg)
}
}
Но как именно я могу отправить сообщение от контроллера актеру через веб-сокет? Скажем, в коде контроллера у меня есть код действия, который обрабатывает, когда кнопка нажата, он отправит блок строки в актера. Как отправить эту строку вышеприведенному актеру из кода контроллера?