2013-01-08 61 views
1

我正在通過webworkers文檔,我找不到任何支持兩個webworkers之間的通信的api。這是我的背景,現在我需要直接與worker2溝通worker1?而不是從UI。它就像線程消息一樣。如何溝通兩個webworkers html5?

app.js

var worker1 = new Worker("worker1.js"); 
var worker2 = new Worker("worker2.js"); 

worker1.onmessage=function(e) { 
    console.log("msg from worker1"+e.data); 
} 
worker1.postMessage("ping worker1"); 

worker2.onmessage=function(e) { 
    console.log("msg from worker2"+e.data); 
} 
worker2.postMessage("ping worker2"); 

worker1.js

onmessage=function(e) { 
    postMessage(e.data) 
} 

worker2.js

onmessage=function(e) { 
    postMessage(e.data) 
} 
  1. 這可能嗎?
  2. 是否支持任何HTML5 API?
  3. 如果支持我如何實現直接通信?

如果可能的話請貼一些例子來做到這一點。

+1

參見'MessageChannel'(儘管沒有太多好例子)。如果不是,您可以通過主線程調度間接進行通信。 – Amadan

+0

我看到了,但我不知道該怎麼做? –

+0

@amadan請使用MessageChannel粘貼一些示例東西 –

回答

1

在MessageChannel上工作一段時間後,我得到了解決方案。這裏是demo of working link