我有一个网络开发人员的背景,只是一个初学者在扑翼和飞镖。
对于一个项目,我需要在Flutter中实现Server-Sent-Event / EventSource功能。
我已经搜索过像dart:http、EventSource构造函数和Flutter API这样的选项,但我还没有找到使用StreamBuilder的工作示例。
你能给我举一些Flutter应用程序可以监听API的例子吗?
这就是Web开发中要做的事情。
// client side
const eventSource = new EventSource(`/eventSource/${xyz}`)
eventSource.onmessage = function(e) {
const data = JSON.parse(e.data)
console.log(e)
}
// server side
router.get('/eventSource/:id', (req, res) => {
const headers = {
'Content-Type': 'text/event-stream',
'Connection': 'keep-alive',
'Cache-Control': 'no-cache'
}
res.writeHead(200, headers)
const data = `data: ${JSON.stringify(someData)}\n\n`
setInterval(() => {
x.write(data)
}, 3000)
req.on('close', () => {})
})
发布于 2021-02-25 06:24:28
这段代码可能会有帮助
var _client;
var _streamResponse;
Future streamFiles() async {
_client = http.Client();
final url = 'url';
var headers = {};
final req = http.Request('GET', Uri.parse(url));
req.headers.addAll(headers);
final res = await _client.send(req);
_streamResponse = res.stream.toStringStream().listen((value) {
print(json.decode(value));
});
}
@override
void dispose() {
if (_streamResponse != null) _streamResponse.cancel();
if (_client != null) _client.close();
super.dispose();
}
https://stackoverflow.com/questions/66331623
复制相似问题