问题标签 [dart-io]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
66 浏览

dart - Dart reader.on.loadEnd 错误

有人知道这段代码有什么问题吗?

错误:中断异常:类“事件”没有实例获取器“loadEnd”。

0 投票
1 回答
159 浏览

dart - Dart 流式传输性能

如果这个问题被认为不适合 SO,我深表歉意,但我想知道你们中是否有人知道asStream通过then. 您是否期望以下两个操作之间存在一般性能差异?

操作 1

操作 2

0 投票
1 回答
789 浏览

dart - Dart 如何在“main”方法之外获取命令行参数?

在 C# 语言中存在用于此目的的全局系统变量。

当当前进程启动时,此属性提供对程序名称和命令行上指定的任何参数的访问。

Dart 是异步语言。它允许自启动过程。

打包任务。

附言

Dart Team 的官方回答:“未计划”。

我无法理解:“为什么通过他们的库在其他平台上这是可能的,但在 Dart 平台上这是不可能的?”。

为什么只通过“主要”参数,甚至不能确保其他隔离不会在不是真正的操作系统进程命令行参数的代理参数上替换这些参数)?

这里的例子:

围棋语言

锈语言

C#语言

红宝石语言

Python 语言

PHP 语言

Node.js 语言

附言

同样,我确信 Dart 平台与其他平台不同。

这只是我的意见。它不会改变任何东西。

感谢 Günter Zöchbauer 的关心,但无需编辑。

0 投票
2 回答
382 浏览

dart - 如何使用“dart:io”更改文件日期属性(至少修改日期)?

我想更改文件的修改日期和时间。

我如何在 Dart 平台上做到这一点?

.NET Framework 中的示例,C# 语言。

我确信这是可能的。

我只是不知道如何在 Dart 这样出色的平台上以标准方式进行操作。

在 Dart 中是不可能的

0 投票
2 回答
1099 浏览

dart - 有效地将图像文件流式传输到 HttpResponse

我的服务器端 Dart Web 应用程序为某些请求提供图像文件。

简化,这是它目前所做的:

这行得通,但它相当慢,我怀疑通过单独写入每个字节HttpResponse.writeCharCode是在这里减慢速度的原因。

不幸的是,没有像HttpResponse.writeAllCharCodes这样的东西。有writeAll,但它调用字节数组的每个元素——我们需要写入原始字节。toString()

有什么建议么?

0 投票
1 回答
671 浏览

routing - Dart 多服务器中的端口转发请求 // 隔离处理程序

如果我有 4 个 Dart 服务器正在运行并且我想转发请求,我将如何在 Dart 中执行此操作?一方面,我希望有效地对请求做出反应,但也能够以不同的方式处理某些请求,或者在某处处理来自某个城市的 IP。所以我评估了一个会话 ID 并说这个会话应该由 server2:1234 提供服务,这意味着理想情况下响应将由该服务器打印,而不是通过 server1:80 路由所有内容,因为这会大量消耗 server1:80 的可用性

在“hello world”数字中:
server1:80 可以服务 aprox:8000 req/sec
4 个服务器可以服务 aprox:15-20000 req/sec(使用 nginx 作为前端)

隔离无法处理 httprequests afaik 我需要解析/降级隔离的请求,这更糟糕。

2个问题:

如何在不阻塞主实例的情况下转发请求?
(如使用 nginx 负载平衡)
我怎样才能理想地将请求路由到隔离?
(我发现的任何示例要么已过时,要么使用了我不喜欢的模式:为每个请求生成隔离...不是一个好主意。我宁愿在隔离中动态创建服务器实例并在那里转发请求)

我看到的主要问题是,您不共享内存,所以问题是,是否甚至可以在没有重复副本的情况下路由任何数据。如果服务器在不同的机器上运行,您将产生严重的流量开销。我猜最好有一种动态标头重定向/重写的方法。但即使如此,我也需要在端口 80 上说 4-16 个“线程”以提高效率。飞镖不可能实现 Afaik。最好的办法是什么?

我真的很感谢这里的帮助。

更新

使用此补丁: https
://codereview.chromium.org/250513002/ 您实际上可以实现与旧补丁类似的并行服务器进程: https ://codereview.chromium.org/25511002/

在这两种情况下,您都在同一个端口上侦听,但在两种情况下,您可以只运行另一个进程并重用该端口,而在一种情况下,您可以在隔离中运行进程并共享一个 ServerSocketReference。

旧补丁需要一些调整,但最终使用新的 SDK,我至少可以摆脱 nginx。保存 nginx 代理通行证可以多提供 10-20% 的 hello world 请求。使用 2 个并行进程,我实现了大约 140% 的性能,而使用 3 和 4,它只有 145%。但是在我的笔记本电脑上总共大约 10k req/sec 这很好(也说明我们只想在这里死于美丽;))

这是高度实验性的,没有人知道它将来会如何工作。我推荐第一个补丁,因为它似乎是更清洁的方法。

这是我希望早先找到的基本示例:)

UPDATE == 现在可与 SDK 1.4 一起使用

0 投票
1 回答
145 浏览

dart - 如何创建客户端服务器应用程序并执行它

如何在 dart 中创建客户端服务器应用程序。我的目标是创建一个程序来从 URL 中提取参数并将它们存储在变量的会话中,并将 dart 连接到 .net Web 服务,在下面的代码中,我显示了内置库“dart:io”在 Dartium 上不可用。

0 投票
1 回答
176 浏览

dart - dart HTMLrequest 默认为 index.html 不起作用

我有一个简单的 Dart HTTPServer 正在运行,virDir.serveRequest(request);它为 URL提供请求,192.168.1.200:8080/index.html404 Not Found如果我使用192.168.1.200:8080or则提供192.168.1.200:8080/。我可能天真,尽管默认是自动的。顺便说一句,这对我来说是全新的。

我没有注意到 HTMLServer 中的任何默认设置,这是如何实现的?

(编辑)

我已经能够使用默认值检测使用并计算正确的文件名,但不明白如何将其传递给浏览器:

[编辑]

仍然无法提供 index.html 文件。我尝试使用 VirtualDirector.serveFile() 但在尝试处理默认 index.html 文件时无法使其工作。我一直试图效仿一个例子。

当我运行它并打印 indexUri.toFilePath() 时,输出是'/index.html'

我的代码在 /srv/fireimager/bin 和 /srv/fireimager/web 中,后者是虚拟目录根目录。当我检测到用户没有在 url 中指定 /index.html 时,它不起作用,没有发出错误,并且 javascript 控制台没有显示任何内容,因此没有任何内容提供给浏览器。

我显然不明白如何使用 VirtualDirectly.serveFiler。

0 投票
1 回答
42 浏览

dart - 参数类型混淆

我正在尝试使用 VirtualDirectory 类并在 web 中找到一个很好的示例。

看调用方法服务

和传递的参数,它来自 httpserver 类型。但是当我查看 api 文档时,它需要一个 httprequest 类型。

为什么我可以传递一个 httpserver 实例来服务方法而不是 httpreqeust 实例?

0 投票
1 回答
904 浏览

dart - Dart:在Windows上打印没有回车的换行符?

我正在尝试从 windows dart vm 输出带有 *nix 行结尾的文本,它似乎总是用 \r\n 替换 \n:

这是我从 cygwin 运行时得到的

有没有办法在没有自动回车插入的情况下输出文本?