Я хотел бы реализовать связь между веб-мастерами. Я прочитал документацию W3C, и я обнаружил, что MessageChannel - один из способов сделать это, но при чтении MessageChannel я не мог понять, как реализовать связь между рабочими, использующими канал сообщений.
Я получил это из MSDN
http://msdn.microsoft.com/en-in/library/ie/hh673525(v=vs.85).aspx
Здесь также нет соответствующей документации.
Мне нужно знать, как я могу общаться с веб-мастерами с помощью MessageChannel?
Вот Demo, набрасывающий DATA_CLONE_ERR
var worker = new Worker("sub1_worker.js");
worker.onmessage = function(e) {
$("#log").append("<br>" + e.data);
}
var channel = new MessageChannel();
worker.postMessage("ping", [channel.port2]);
channel.port1.onmessage = function(event) {
// Message is in event.data
alert("Message is: " + event.data);
}
channel.port1.postMessage('hello');
$("#send1").click(function() {
var msg = $("#msg").val();
if (msg && msg != "start")
worker.postMessage("ping2");
$("#msg").val("");
})
$("#send2").click(function() {
var msg = $("#msg").val();
if (msg && msg != "start")
worker.postMessage("ping3",[channel.port2]);
$("#msg").val("");
})
и работник
onmessage = getMessage;
function getMessage(e){
if(e.ports[0])
e.ports[0].postMessage("msg from sub worker 1 "+ e.data);
else
postMessage("msg from sub worker 1 "+ e.data);
}