如何使用 Addon SDK 从 main 向 page-worker 发送消息
How to send messages from main to page-worker using Addon SDK
这是我的main.js
var background = require("sdk/page-worker").Page({
contentScriptWhen:'start',
contentScriptFile: ['./jquery.min.js','./socket.io1.js', './background.js'],
onMessage: function(message) {
console.log(message);
}
});
和我的background.js
var myuser={}
//other socket.io stuff
如何从 main.js-> background.js 和 background.js->[=24 发送消息=] ?
(port ? postMessage ?): 任何可用样本 ?
main.js
// keep track of your active workers
var workers = [];
require("sdk/page-mod").PageMod({
include: "*",
contentScriptWhen:'start',
contentScriptFile: ['./jquery.min.js','./socket.io1.js', './background.js'],
onAttach: function(worker){
workers.push(worker);
worker.on("message", function(aData){
//messages from background.js
});
//remove inactive workers
worker.on("detach", function(){
workers.splice(workers.indexOf(worker), 1);
});
//messages to background.js
worker.postMessage({
johnny : "oh, hi mark",
mark : "oh, hi johnny"
});
}
});
background.js
self.on("message", function(msg){
//messages from main.js
});
//messages to main.js
function post(msg){
self.postMessage(msg);
}
这是我的main.js
var background = require("sdk/page-worker").Page({
contentScriptWhen:'start',
contentScriptFile: ['./jquery.min.js','./socket.io1.js', './background.js'],
onMessage: function(message) {
console.log(message);
}
});
和我的background.js
var myuser={}
//other socket.io stuff
如何从 main.js-> background.js 和 background.js->[=24 发送消息=] ?
(port ? postMessage ?): 任何可用样本 ?
main.js
// keep track of your active workers
var workers = [];
require("sdk/page-mod").PageMod({
include: "*",
contentScriptWhen:'start',
contentScriptFile: ['./jquery.min.js','./socket.io1.js', './background.js'],
onAttach: function(worker){
workers.push(worker);
worker.on("message", function(aData){
//messages from background.js
});
//remove inactive workers
worker.on("detach", function(){
workers.splice(workers.indexOf(worker), 1);
});
//messages to background.js
worker.postMessage({
johnny : "oh, hi mark",
mark : "oh, hi johnny"
});
}
});
background.js
self.on("message", function(msg){
//messages from main.js
});
//messages to main.js
function post(msg){
self.postMessage(msg);
}