используя handleWebsocketMessage в akka-http

Используя akka-http, как я могу создать Flow[Message, Message, _] для передачи tohandleWebsocketMessage, который только прослушивает входящие данные, но ничего не записывает? Можно ли вообще использовать раковину? Потому что Раковина звучит как то, что мне нужно.


person John Pertoft    schedule 20.08.2015    source источник


Ответы (1)


Можно создать Flow из независимых Source и Sink, что вам и понадобится. Чтобы получить больше внутренней информации о том, как он может работать, вы можете прочитать состав потока docs.

В общем, вам нужно создать поток таким образом, чтобы он был приемником, который мог обрабатывать входящие сообщения, и источником, который никогда не испускает, это достигается следующим образом:

Flow.wrap(Sink.foreach(println), Source.lazyEmpty)(Keep.none)
person Konrad 'ktoso' Malawski    schedule 20.08.2015
comment
Спасибо за ответ, но это дает мне ошибку, так как у wrap есть 3 или 5 параметров типа. Я посмотрел исходный код github.com/akka/akka/blob/release-2.3-dev/akka-stream/src/main/. Но я не очень понимаю, каким должен быть третий тип. - person John Pertoft; 20.08.2015
comment
Еще раз спасибо, но единственным параметром должен быть график. def wrap[I, O, M](g: Graph[FlowShape[I, O], M]): Flow[I, O, M] Как мне это создать или можете ли вы указать мне правильное направление. - person John Pertoft; 20.08.2015
comment
Flow.wrap(Sink.foreach(println), Source.lazyEmpty)(Keep.none) наконец-то заработал. - person John Pertoft; 21.08.2015
comment
A Flow[In, Out, M] IS-A Graph[FlowShape[In, Out], M] :-) Все типы Потоков/Приемников/Источников/чего-либо на самом деле являются графами, мы их все как таковые унифицировали. - person Konrad 'ktoso' Malawski; 16.12.2015