- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于在 dart2js 中处理流有类似的问题 ( how to process a HTTP stream with Dart )。我专注于虚拟机。
我可以从规范中读到:
The content of message can be: primitive values (null, num, bool, double, String), instances of SendPort, and lists and maps whose elements are any of these. List and maps are also allowed to be cyclic.
In the special circumstances when two isolates share the same code and are running in the same process (e.g. isolates created via spawn), it is also possible to send object instances (which would be copied in the process). This is currently only supported by the dartvm. For now, the dart2js compiler only supports the restricted messages described above.
我了解到我无法发送到隔离对象并返回以下对象:HttpRequest 和 HttpResponse 对象,我无法发送流。
问:我真的不明白我应该如何在 isolate 中处理大块数据,然后将其发送回主 isolate,然后再将其发送回客户端。
通常如果我想读取一个文件。我可以获得流,应用转换,然后将流通过管道传输到 http 响应。使用 isolate 执行此操作的最佳做法是什么?
感谢您的帮助!
最佳答案
我已经提供了一个示例,但我将简要概述如何实现这一目标,尽管它不一定是最佳实践 - 这只是我个人知道的唯一方法。
我们得到了一个名为 Isolate.spawnUri(Uri uri, List<String> args, dynamic message)
的方法
message
参数可以包含您在第一篇文章中提到的摘录中的任何值。我们要做的是在主线程中创建一个新的 ReceivePort
并监听传入的数据,然后我们想用 message
生成一个隔离作为 ReceivePorts .sendPort
.
然后 isolate 应该创建自己的 ReceivePort
并使用消息值发回它自己的发送端口并监听它的接收端口。这实质上所做的是创建一种双向通信。允许我们保持隔离状态并来回发送工作。
来自您的 isolate 的任何响应都将通过您的原始接收端口,您想要发送到 isolate 的任何数据都将通过 isolate 刚刚发回的发送端口。
然后您可以直接将流数据发送到 isolate 以供其随意处理,它可以按原样发送回数据(或者您可以在 isolate 发送响应后关闭端口 - 由您决定去做吧)。
我在 GitHub 上提供了一个例子: https://github.com/TomCaserta/ExampleIsolate
请注意,如果您希望您的 isolate 在 dart2js 中工作,请务必通过以下命令在每个 isolate 文件上运行 dart2js:
dart2js -o <filename>.dart.js <filename>.dart
关于dart vm 从 isolate 发回流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053623/
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
我是 Azure 平台的初学者。我在公司的 Azure 基础架构中遇到了虚拟机问题,在我从操作系统重新启动后,该虚拟机无法启动,我尝试了所有其他故障排除功能,但仍遇到以下问题: 重新部署选项。 我想确
我在 Mac 上使用 XAMPP-VM,我尝试使用 xampp 管理器上显示的地址通过 ssh 连接到 VM: 192.168.65.2 我意识到我不知道 VM 的 root 密码和任何 ssh-ke
我知道你可以在 Dalvik 的 VM 中运行几乎所有的 Java,而你可以在 Java 的 VM 中运行,但是限制不是很清楚。有没有人遇到任何主要的绊脚石?有什么大图书馆有问题吗?任何编译成 Jav
Azure VM 备份失败,出现错误 - GuestAgentSnapshotTaskStatusErrorAzure 备份服务无法与 VM 代理通信以触发快照(以进行备份),因为 VM 代理可能处于
我想知道当虚拟机停止时,虚拟机的软件成本部分是否收费。我想运行 Azure SQL VM Enterprise。 VM 每月的软件成本为“1,116 美元/月”。 如果我停止使用,我仍需支付该软件的费
有 2 台安装了 Proxmox (Proxmox-ve 4.2) 的物理服务器,每台都处理几个虚拟机和容器。这些服务器(几乎)完全隔离,它们之间没有集群/共享存储/附加存储等。 已在 proxmox
我想知道当虚拟机停止时,虚拟机的软件成本部分是否收费。我想运行 Azure SQL VM Enterprise。 VM 每月的软件成本为“1,116 美元/月”。 如果我停止使用,我仍需支付该软件的费
有 2 台安装了 Proxmox (Proxmox-ve 4.2) 的物理服务器,每台都处理几个虚拟机和容器。这些服务器(几乎)完全隔离,它们之间没有集群/共享存储/附加存储等。 已在 proxmox
Parrot Virtual Machine 有什么好处?对于最终用户(软件开发人员)? 例如,如果我可以直接针对 Perl 或 Python 进行编程,我为什么还要在 Parrot 下为它们编程呢?
例如,Python 和 Java 有一个 VM,而 C 和 Haskell 没有。 (如果我错了,请纠正我) 想了想线路两边都有哪些语言,找不到原因。 Java 在很多方面都是静态的,而 Haskel
我知道虚拟机镜像有两种类型:通用型和专用型。 如果操作系统已通用化/取消配置,则必须关闭虚拟机才能将其捕获为 VM 镜像。一旦 VM 被捕获为 VM 镜像,该虚拟机将自动删除。 如果操作系统是专用,则
我知道虚拟机镜像有两种类型:通用型和专用型。 如果操作系统已通用化/取消配置,则必须关闭虚拟机才能将其捕获为 VM 镜像。一旦 VM 被捕获为 VM 镜像,该虚拟机将自动删除。 如果操作系统是专用,则
背景信息 我正在开发一种支持网络的嵌入式设备,旨在与服务器进行通信。因为此服务器将运行 Linux(但我需要 Windows 工具进行开发),我正在运行带有 Ubuntu Server 14.04 的
我有一个 Azure 云服务 mywebapp.cloudapp.net,它由两个 Azure VM - mywebappvm1 和 mywebappvm2 组成。两个虚拟机位于同一可用性集中并具有相
有什么方法可以在不重新启动虚拟机的情况下调整现有虚拟机的大小,还是总是像停止虚拟机然后重新启动一样? 据我了解,我可以更改虚拟机的大小而无需重新启动它。请指导我,因为我不希望虚拟机在调整大小时出现任何
我是 Azure 新手。我正在尝试使用 powershell 在 Azure 中创建资源。 我的要求是从虚拟机创建镜像。我遵循了以下方法: 流程 1:手动执行 通用化虚拟机:登录虚拟机 -> 打开命令
我创建了虚拟网络,并且想要将新虚拟机部署到该虚拟网络。网络 我尝试使用以下命令创建虚拟机: az vm create --resource-group myGroup --name VMTestNet
上下文 作为一个大学项目,我们希望更改 pharo 虚拟机以使用对象表,看看会发生什么。 我们使用pharo-vm clone from github和VMMaker。构建虚拟机工作正常。 首先,我们
我是巴拿马型的新手,刚刚安装,但收到以下错误消息: A different VM with name panamax-vm has been created already. 我试图通过使用 pana
我是一名优秀的程序员,十分优秀!