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