brabo-hi
01/27/2022, 11:10 PMktor 2.x
? Should we read in a while(true){}
client.wss() {
while (true) {
val customer = receiveDeserialized<Customer>()
}
}
incoming.consumeAsFlow()
Aleksei Tirman [JB]
01/29/2022, 9:32 AMDaria Usova
01/31/2022, 6:54 AMreceiveDeserialized
should be used with while
.
For example:
client.wss() {
try {
while(true) {
val customer = receiveDeserialized<Customer>()
}
} catch (t: Throwable) {
...
}
}
If you wish to deserialize incoming messages in a flow, you could write something like this:
val converter: WebsocketContentConverter = ...
val customers = incoming.consumeAsFlow()
.map {
converter.deserialize(
charset = call.request.headers.suitableCharset(),
typeInfo = typeInfo<Customer>(),
content = it
)
}.collect()
brabo-hi
01/31/2022, 6:32 PM