- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我突然想到流式传输字符串是有意义的,每个字符串代表来自数据库查询的一个元素,而不是在过程结束时返回它们的整个列表,这可能会在浏览器上更早地获得第一个结果.所以我尝试用 Redstone
来实现它使用Shelf
.这是我的基本测试
@app.Route ('/testStream')
testSream ()
{
StreamController<String> controller = new StreamController<String> ();
() async
{
var initialTime = new DateTime.now();
await new Future.delayed (new Duration (seconds: 1));
controller.add("hello\n");
await new Future.delayed (new Duration (seconds: 10));
controller.add("chao\n");
var finalTime = new DateTime.now().difference(initialTime);
controller.add(finalTime.toString());
controller.close();
}();
Stream<List<int>> intStream = controller.stream.map((s) => s.codeUnits);
return new shelf.Response.ok (intStream);
}
只是在某些情况下,Linked-in 的人使用他们从 Facebook 获得的模式中的“文本流”来快速呈现页面的一部分并插入一些后者(如果可用),他们在 Playframework (Scala) 中实现了这一点他们在哪里使用 Enumerables
这看起来就像 Dart 流一样。你可以在 this video 中看到它.
我的代码的问题在于,虽然我希望它显示 "hello"
1 秒 后,"chao"
10 秒 后。我得到的是 11 秒 的等待,然后是完整的文本。如您所见,我正在回复 Shelf.Response
用Stream<List<int>>
每个List<int>
只是将原始流中的字符串转换为字节。
这是 Shelf 问题/功能,还是 Redstone 搞乱了响应并将其转换为 future ?有什么解决办法吗?
编辑
我想得到什么
1 秒内没有任何内容。
1秒后
hello
11 秒后
hello
chao
0:00:11.009000
我真正得到了什么
1 秒内没有任何内容。
11 秒后
hello
chao
0:00:11.009000
最佳答案
对于那些后来到这里的人:
正如@Pacane 在问题评论中所建议的,他发布的链接 ( https://github.com/dart-lang/shelf/issues/54 ) 确实包含 Andersmholmgren 的评论,该评论适用于该问题:
return new Response.ok(counterStream, context: {"shelf.io.buffer_output": false});
将“shelf.io.buffer_output”选项设置为 false 会禁用 Shelf 的输出缓冲区,并使添加到响应流的字节直接通过网络发送到客户端。
关于dart - 使用 Redstone/Shelf 在 Dart 中流式传输文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29238873/
早上好 我有一个问题,我想在我的 API 和我的服务器之间建立一个 HTTPS 连接。我将 Dart 与 Redstone Dart 层一起使用。我所有的证书都经过验证。 我用的是RedStone函数
我的项目中有一些 Dart 类,我用 Redstone Mapper 注释了一些字段的@Field()注解。 如何在运行时获取所有这些类? 我看过私有(private) map _cache在 red
我突然想到流式传输字符串是有意义的,每个字符串代表来自数据库查询的一个元素,而不是在过程结束时返回它们的整个列表,这可能会在浏览器上更早地获得第一个结果.所以我尝试用 Redstone 来实现它使用S
我添加了 redstone_mappe r 在我的依赖项中运行 pub get 然后它卡在解决依赖项上...... 这是我的 pubspec.yaml name: sample version: 0.
我第一次尝试安装 Xamarin。我安装了它并打开了第一个虚拟项目。我没有对其进行任何更改,我只是想运行它。 (F5) 我得到的第一件事是 我单击“了解更多”,然后转到 Hardware Accele
我正在构建一个使用wordpress-java库的android应用,但出现了"Failed to resolve: redstone.xmlrpc:xmlrpc:1.1.1"错误。 Build.Gr
对于当前版本的 Windows 10、1703、Creators Update,我有这个小 C# 应用程序被调用以在安装序列期间重新启动 explorer.exe。这是为了帮助刷新任务栏/注册表项,以
我是一名优秀的程序员,十分优秀!