Пустой поток с webSocketClientFlow - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть graphdsl, где по какой-то причине после выполнения webSocketClientFlow Flow я получаю пустой поток. Сообщение об ошибке в будущем run:

java.util.NoSuchElementException: head of empty stream

График выглядит так:

val loginMessage = Flow[LoginCommand].map(data => {
    TextMessage(data.toJsonString())
}).named("Converting Login to Message").log("LoginMessage")
val exasolAnnounce = http
    .webSocketClientFlow(WebSocketRequest(socketUrl))
        .named("ExasolAnnounceLogin")
        .log("SendAnnounce")

val announceResponse = builder.add(Flow[Message].map(data =>
    LoginCommand.Response.extract(data)
).named("Building Response").log("AnnouncementResponse"))

import GraphDSL.Implicits._

Source.single(new LoginCommand) ~> loginMessage ~> exasolAnnounce ~> announceResponse

Последние DEBUG журналы:

[DEBUG] [09/11/2018 09:53:43.328] [TestSystem-akka.actor.default-dispatcher-5] [akka://TestSystem/system/IO-TCP/selectors/$a/0] Connection established to [192.168.56.2:8563]
[DEBUG] [09/11/2018 09:53:43.346] [TestSystem-akka.actor.default-dispatcher-17] [akka.stream.Log(akka://TestSystem/system/StreamSupervisor-0)] [SendAnnounce] Upstream finished.
[DEBUG] [09/11/2018 09:53:43.346] [TestSystem-akka.actor.default-dispatcher-17] [akka.stream.Log(akka://TestSystem/system/StreamSupervisor-0)] [AnnouncementResponse] Upstream finished.

Так что мне кажется, что он подключается к Websocket, но по какой-то причине не дает результата. Кто-нибудь может пролить свет на проблему, или как я могу проследить это дальше?


РЕДАКТИРОВАТЬ 1 :

Протестировано с ws: //echo.websocket.org, а затем поток обрабатывается, как ожидалось. Не уверен, как я могу дальше отлаживать поведение Сервера.

1 Ответ

0 голосов
/ 12 сентября 2018

Обнаружено, что наш брандмауэр закрывает соединение.

...