2014-10-06 80 views
2

是否有可能在使用Isolate.spawnuri创建的Dart隔离内使用websockets窗体?websocket和Isolate.spawnuri

我的理解是,客户端,Isolate.spawnuri使用WebWorkers和WebWorker不能使用dart:html(DOM),但客户端,websockets是dart:html的一部分。所以这是一个不行?

THX

(这是很难测试,试图与飞镖编辑器来做到这一点时,我没有得到任何错误或信息,在衍生分离是不可见的,并抛出没有明显的错误,它只是挂起)

这里有一些代码来测试这个:https://gist.github.com/kgersen/148460d056f498a849ef

+1

您的隔离区似乎挂起,因为您没有捕获实例化WebSocket时引发的对象。您必须捕获隔离区主()内的所有抛出的对象,否则隔离区将暂停或终止。如果您想查看错误信息,则必须通过SendPort将其发送回主隔离区。我的测试表明,在spawnuri创建的隔离体内使用某些类会导致抛出的UnimplementedError,但在包含实例化WebSocket的DOM时抛出String(SDK 1.6)时使用。 – 2014-10-07 12:51:54

+0

是啊addind一个捕获给出: DOM访问未启用此隔离 – KGJV 2014-10-07 13:09:39

回答

2

这是正在进行的工作。这将是一个isolate.spawnDomXxxx,它允许导入dart:html。请参阅http://dartbug.com/3050

+0

是的,但自2012年以来它处于“分离”状态。这真的是一个WIP吗? – KGJV 2014-10-07 13:12:55

+0

长期以来,分离菌没有多少进展,但根据我的经验,最近几个月的分离菌取得了很好的进展(监测http://dartbug.com更新)。最近实施了对分离物中断点的支持,处理错误的不同方法,关于结束分离物的通知,... – 2014-10-07 13:15:28

+0

tx我会继续关注那个。 – KGJV 2014-10-07 13:16:59