Как вручную протестировать API веб-сокета Lagom?

Я скачал пример проекта Lagom, который включает в себя простую конечную точку websocket named("example-stream") .withCalls( namedCall("stream", stream) ).withAutoAcl(true) Когда я запускаю приложение и пытаюсь открыть соединение через веб-сокет (ws://localhost:9000/stream), журнал сервера печатает:

[warn] akka.actor.ActorSystemImpl [sourceThread=application-akka.actor.default-dispatcher-53, akkaSource=akka.actor.ActorSystemImpl(application), sourceActorSystem=application, akkaTimestamp=18:02:21.293UTC] - HTTP header 'Sec-WebSocket-Extens ions: permessage-deflate' is not allowed in requests 20:02:21.301 [warn] runstats-stream [] - Could not negotiate a deserializer for type MessageProtocolImpl(Some(none/none),None,None), the default media type supported is MessageProtocolImpl(Some(text/plain),Some(utf-8),None)

Для этого я использую плагин Firefox под названием Browser Websocket client. Насколько я знаю, рукопожатия Websocket не требуют и не устанавливают Content-Type, который, по-видимому, ожидает конечная точка lagom websocket.

Я делаю что-то не так или сгенерированный проект как-то недействителен?

1 ответ

Решение

Вы не делаете ничего плохого. Lagom 1.4.0 поставляется с двумя различными реализациями для обработки веб-сокетов на стороне сервера (netty против AkkaHTTP). В Lagom по умолчанию используется AkkaHTTP, и мы недавно обнаружили проблему. Решение уже разработано, но оно не будет доступно, пока мы не выпустим Lagom 1.4.1.

В то же время вы можете подписаться на реализацию на основе netty (которая использовалась по умолчанию), следуя инструкциям руководства по миграции о том, как выбрать другой механизм сервера.

Другие вопросы по тегам