Ich möchte eine Client-Anwendung implementieren, die zunächst eine Anfrage an den Server senden dann für ihre Antwort warten (ähnlich http)scalaz-Stream, wie `ask-dann-wait-reply` zu implementieren TCP-Client
Mein Klient Prozess kann sein
val topic = async.topic[ByteVector]
val client = topic.subscribe
Hier wird die api ist
trait Client {
val incoming = tcp.connect(...)(client)
val reqBus = topic.pubsh()
def ask(req: ByteVector): Task[Throwable \/ ByteVector] = {
(tcp.writes(req).flatMap(_ => tcp.reads(1024))).to(reqBus)
???
}
}
Dann, wie das bleiben Teil ask
zu implementieren?
ist 'TSource [O2]' das gleiche wie 'Process1 [O, O2]'? – ahjohannessen
Eigentlich nicht, es ist Typ Alias aus unserer Code-Basis für 'Prozess [Task, O2]', Entschuldigung für Verwirrung. –
Ah, danke @pavel :) Es wäre schön einige weitere Beispiele zu sehen, wie dieses hier in der freien Wildbahn verwendet wird :) Das Hinzufügen von Beispielen für gebräuchliche Muster zum scalaz-stream Wiki würde uns helfen, die in der Bibliothek neu sind :) – ahjohannessen