У меня есть сервер, написанный на scala play 2.6
Я пытаюсь получить веб-сокет
- Получить запрос от клиента
- Обработка этого запроса
- Передать результат всем клиентам, если Right передает сообщение об ошибке только
клиент, отправивший запрос, если ушел
У меня есть сообщения, транслируемые всем клиентам прямо сейчас, кто-нибудь знает, как ответить только отправителю в случае ошибки?
val processFlow = Flow[String].map(process).map(_.toString)
val (sink, source) = {
MergeHub.source[String]
.via(processFlow)
.toMat(BroadcastHub.sink[String])(Keep.both)
.run()
}
val websocketFlow = Flow.fromSinkAndSource(sink, source)
def ws = WebSocket.accept[String, String] { request =>
websocketFlow
}
def process(message: String): Either[String, String] = {
if (message == "error") { // replace with any error condition
Left ("ERROR " ++ message)
} else {
Right (message ++ " processed")
}
}