[whatwg] reply() extension to postMessage()

Anne van Kesteren annevk at opera.com
Thu Feb 14 08:58:11 PST 2008

On Thu, 14 Feb 2008 17:30:15 +0100, Aaron Boodman <aa at google.com> wrote:
> If we're going to add reply, I would like to easily be able to get
> replies to a specific message. So extend postMessage to accept a
> callback, and then either have reply() call this callback. Like this:
> // sender:
> someWindow.postMessage("hello!", function(response) {
>   alert("got response: " + response);
> });
> // receiver
> window.addEventListener("message", function(e) {
>   alert("got message: " + e.message);
>   e.reply("good day");
> });

You really want reply() to have that callback too (for longer  
conversations) and at that point it starts getting icky.

I came up with another idea to address the issue you mention. We let  
postMessage() return a UUID and give MessageEvent an "id" attribute. When  
postMessage() is invoked a UUID is generated and returned. This same UUID  
is set on the event that is dispatched. When reply is invoked on that  
event object it creates an event that again has the same UUID. Both  
parties can have multiple conversations that way by checking the UUID of  
the message.

Anne van Kesteren

More information about the whatwg mailing list