[whatwg] Workers feedback
ian at hixie.ch
Fri Aug 8 12:28:43 PDT 2008
On Fri, 8 Aug 2008, Jonas Sicking wrote:
> > >
> > > worker = createSharedWorker("foo", "bar.js");
> > > worker.addEventListener("message", handler, false);
> > > worker.postMessage("wassup dude, i just connected");
> > How would the worker distinguish that from the original "parent"
> > sending the same message?
> Why would the original parent same the message twice? Of course
> applications following their own application level protocols is going to
> break themselves.
The whole point of capabilities-based systems is that you can pass these
communcation ports over to unknown entities and don't have to trust that
they won't screw up your protocol. For example, you could create a shared
worker to handle all the requests from all the gadgets hosted on a user's
home page and just pass the worker off to them each time:
// a new gadget has been created
var worker = createSharedWorker('gadget-api.js', 'gadgets');
gadget.postMessage('here is the gadget API', worker.port);
What you're proposing would be way more complex -- now you'd have to
create the pipe separately, you'd have to have the worker know how to
handle both a new connection from its parent as well as its parent saying
it wants a new pipe for a gadget, you'd have lifetime issues as you
now have extra commucation mechanisms, etc.
(This brings up another point, which is that by having Worker objects also
be communication end points, we double the complexity of the definitions
for worker lifetime, since now they have to deal with both types of
channels, not just the one generic type.)
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg