结合了 okhttp 进行网络请求
val inputStream = response.body?.byteStream()
val reader = BufferedReader(InputStreamReader(inputStream))
var str: String?
while (true) {
str = reader.readLine()
if (str != null && str.isNotEmpty()) {
when{
str.startsWith("event:")->{
//处理数据
}
str.startsWith("data:")->{
val jsonStr = str.substring(5).trim()
if (jsonStr.equals("[DONE]")) {
//结束处理
break
}
//处理数据
}
}
}
}
和 Flow 结合
https://medium.com/@manoel.al.amaro/understand-kotlin-flow-coroutines-by-implementing-server-side-sent-sse-9e190ff5f24f
该文章探讨了如何在Kotlin应用中利用OkHttp进行网络请求,并结合Flow库处理Server-SentEvents(SSE)。通过读取响应的字节流,解析以‘event:’和‘data:’开始的数据段,实现了实时数据处理。当接收到特定信号如[DONE]时,终止处理流程。文章展示了Coroutines在异步操作中的应用。
1774

被折叠的 条评论
为什么被折叠?



