目前,我们正在使用此功能将邮件发送到客户端
Flow[Message]
.mapConcat(_ ⇒ Seq.empty[String].toList)
.merge(source) // Stream the data we want to the client
.map(data => TextMessage(data))
val source = Source.fromFuture(data).throttle(1, 1.second, 1, ThrottleMode.Shaping).runWith(Sink.ignore)
现在,我希望收到客户的回复并相应回复。我该怎么做?
答案 0 :(得分:0)
您的WS流当前正在忽略传入的消息。 mapConcat
应该与传入的TextMessage
或BinaryMessage
匹配,并根据需要做出响应
Flow[Message].mapConcat {
case tm: TextMessage => TextMessage(Source.single("Hello ") ++ tm.textStream ++ Source.single("!")) :: Nil
case bm: BinaryMessage =>
bm.dataStream.runWith(Sink.ignore) // ignore binary message but drain content
Nil
}