From 94a8663ed31852dc949753b68112bace52b27a51 Mon Sep 17 00:00:00 2001 From: Konga Raju Date: Sat, 30 Jan 2016 12:40:58 +0530 Subject: [PATCH] Tutorial on HTML5 Channel Messaging Issue #626 raised some time back regarding this. https://github.com/html5rocks/www.html5rocks.com/issues/626 --- .../messagechannel/overview/en/index.html | 232 ++++++++++++++++++ database/profiles.yaml | 19 ++ database/tutorials.yaml | 20 ++ static/images/profiles/kongaraju.jpg | Bin 0 -> 53672 bytes .../images/tutorials/message-channel-flow.png | Bin 0 -> 24967 bytes 5 files changed, 271 insertions(+) create mode 100644 content/tutorials/webmessaging/messagechannel/overview/en/index.html create mode 100644 static/images/profiles/kongaraju.jpg create mode 100644 static/images/tutorials/message-channel-flow.png diff --git a/content/tutorials/webmessaging/messagechannel/overview/en/index.html b/content/tutorials/webmessaging/messagechannel/overview/en/index.html new file mode 100644 index 000000000..c07cc91e0 --- /dev/null +++ b/content/tutorials/webmessaging/messagechannel/overview/en/index.html @@ -0,0 +1,232 @@ +{% extends "tutorial.html" %} + +{% block headauthor %}Raju Konga {% endblock %} + +{% block pagebreadcrumb %}Javascript Threads Communication{% endblock %} + +{% block head %} + +{% endblock %} + +{% block html5badge %} +This article is powered by HTML5 Performance & Integration +{% endblock %} + +{% block iscompatible %} + return !!window.MessageChannel; +{% endblock %} + +{% block content %} +

Introduction to Javascript Threads Communication

+

What are threads in Javascript? thread in javascript can be document main execution thread or it can be a webworker. These independant scripts can perform their jobs with no interaction between them, some cases needs interaction between them like two threads initailized in same document they need to share task.

+ +

How would communication between javascript threads can heppen? Web Messaging, it brings the cross document communication and channel messaging. This article will only covers channel messaging i.e; Message Channel.

+ +

Introduction to Channel Messaging

+

Channel messaging enables communication between two independent pieces of code. MessageChannel API gives you a way to implement channel messaging, MessageChannel API is a part of Web Messaging specification .Message Channel allows to communicate two independent scripts they can be documents from different origins, they can be two webworkers, individual unrealated scripts, etc... It helps to transfer messages to the other end without any media, both the threads can communicate directly via ports. Array of ports can be sent using ports property of event.Message Channel API + +

Message Channel API deals with three things MessageChannel constructor, Message Ports and Message Event. MessageChannel constructor creates new MessageChannel Object with two properties called port1 and port2 on each instance, each property of MessageChannel object is an instance MessagePort related to other property.

. + +

Ports can + send messages using postMessage API and + receives messages using onmessage event. + + start() enables the messaging on the port and + close() will terminates. +

+ +
+ Message Channel Flow Diagram +
Message Channel Flow
+
+ +

Getting Started

+

Detecting the MessageChannel support

+
+if(window.MessageChannel && window.MessagePort){
+	//Yes, you can use channel messaging
+}
+
+ +

Initializing a MessageChannel

+
+var msgChannel = new MessageChannel();
+//It returns MessageChannel object
+//MessageChannel {}
+//	|-port1: MessagePort
+//	|-port2: MessagePort
+
+ +

Passing the ports to scripts using postMessage

+
+window.postMessage(data,origin,[msgChannel.port2]);
+//postMessage can transfer the transferable objects with the message.
+//for webworkers ignore the origin parameter
+//worker.postMessage(data,[msgChannel.port2]);
+
+ +

Initializing the communication and listening to other port

+
+function portMsgListener(msgEvent){
+	//msgEvent is MessageEvent object
+	//msgEvent.data gives the data sent from other port
+	alert(msgEvent.data);
+}
+
+msgChannel.port1.addEventListener("message", portMsgListener, false);
+
+//start listening to messages from other port of message channel
+msgChannel.port1.start();
+
+ +

Receiving the port and storing for future communication purpose

+
+//otherWindow can be second worker or frame
+var otherEndMsgPort = null;
+function messageHandler(msgEvent){
+	if( messageEvent.ports.length > 0 ){
+		otherEndMsgPort = messageEvent.ports[0];
+		//It can be use for sending message to the other end
+		//otherEndMsgPort.postMessage(msg);
+		//otherEnd will receive msg
+	}
+}
+
+otherWindow.onmessage = messageHandler;
+
+ +

The messages sending through the ports are copies, not shared. Messages will get serialized and passed to the other port, they will get de-serialized on the other end. So the ports do not share same object instance, the copy of message receives on either port.

+ +

Great explanation on Transferable objects can be found here

+ +

Use Cases

+

The two different interesting use cases mentioned her, there can be many depending on different scenarios.

+
    +
  1. A document contains two frames with different origins, they need communication between them.
  2. +
  3. A game application initialized two workers and they need to share a job between them based on requirement.
  4. +
+ +

Example: Communication between web workers

+ +

One of the above mentioned use case explaining here.

+

In main thred:

+
+function msgChannelSetup(){
+	if(!supportsMessageChannel()){
+		//Don't have message channel support quit!
+		alert("Your Browser does not support Channel Messaging!");
+		return false;
+	}
+
+    var msgChannel = new MessageChannel();
+    var worker1 = new Worker("worker1.js");
+    var worker2 = new Worker("worker2.js");
+
+    // Setup the connection: Port 1 is for worker 1
+    worker1.postMessage({
+        command : "connect",
+    },[ msgChannel.port1 ]);
+
+    // Setup the connection: Port 2 is for worker 2
+    worker2.postMessage({
+        command : "connect",
+    },[ msgChannel.port2 ]);
+
+    worker1.postMessage({
+        command: "forward",
+        message: "this message is forwarded to worker 2"
+    });
+}
+
+function supportsMessageChannel(){
+	return window.MessageChannel && window.MessagePort;
+}
+
+ +

In worker1.js

+ +
+var worker2port;
+var onMessageFromWorker2 = function( event ){
+    console.log("Worker 1 received a message from worker 2: " + event.data);
+
+    //To send something back to worker 2
+    //worker2port.postMessage("");
+};
+
+self.onmessage = function( event ) {
+    switch( event.data.command )
+    {
+        // Setup connection to worker 2
+        case "connect":
+            worker2port = event.ports[0];
+            worker2port.onmessage = onMessageFromWorker2;
+            break;
+
+        // Forward messages to worker 2
+        case "forward":
+            // Forward messages to worker 2
+            worker2port.postMessage( event.data.message );
+            break;
+
+        //handle other messages from main
+        default:
+            console.log( event.data );
+    }
+};
+
+ +

In worker2.js

+ +
+var worker1port;
+var onMessageFromWorker1 = function( event ){
+    console.log("Worker 2 received a message from worker 1: " + event.data);
+
+    //To send something back to worker 1
+    //worker1port.postMessage("");
+};
+
+    self.onmessage = function( event ) {
+    switch( event.data.command )
+    {
+        // Setup connection to worker 1
+        case "connect":
+            worker1port = event.ports[0];
+            worker1port.onmessage = onMessageFromWorker1;
+            break;
+
+        // Forward messages to worker 1
+        case "forward":
+            // Forward messages to worker 1
+            worker1port.postMessage( event.data.message );
+            break;
+
+        //handle other messages from main
+        default:
+            console.log( event.data );
+    }
+};
+
+ +

Demo

+ +

The above example shows, how to forward message channel port to workers, how to handle other worker messages and main thread messages and communication between the workers

+ +

If there is no support in platform polyfill gives the support to use it. caniuse helps to the support.

+ +

References

+ + +{% endblock %} \ No newline at end of file diff --git a/database/profiles.yaml b/database/profiles.yaml index d3a8d1ada..760aacc9d 100644 --- a/database/profiles.yaml +++ b/database/profiles.yaml @@ -1198,3 +1198,22 @@ google: 100684278618967844344 twitter: unit9 email: developers@unit9.com +--- + +id: kongaraju +name: + given: Raju + family: Konga +org: + name: Meridium + unit: Senior Software Engineer +address: + locality: Bangalore + region: Karnataka + country: India + lat: 12.9667 + lon: 77.5667 +homepage: http://kongaraju.in +google: 115310382888220784299 +twitter: kongaraju +email: kongaraju@gmail.com diff --git a/database/tutorials.yaml b/database/tutorials.yaml index 94eba8951..fa94d3317 100644 --- a/database/tutorials.yaml +++ b/database/tutorials.yaml @@ -1,3 +1,23 @@ +title: "Javascript Thread Communication" +url: /tutorials/webmessaging/messagechannel/overview/ +author_id: kongaraju +publication_date: 2016-01-31 +description: "The tutorial briefs communication between two contexts using channel messaging." +browser_support: +- chrome +- safari +- ff +- ie +- opera +tags: +- webmessaging +- messagechannel +- workers +- type:article +- class:performance +- class:nuts_and_bolts + +--- title: "Techniques for Streaming Multimedia in HTML5" url: /tutorials/streaming/multimedia/ author_id: ericbidelman diff --git a/static/images/profiles/kongaraju.jpg b/static/images/profiles/kongaraju.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cead47e686267d17bf7226f9c471fff0b14d0186 GIT binary patch literal 53672 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 !{r2mS3bC=*d}_$ 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 b>?+^UfBHR#{{W#M{{X~SD>rD}1!(`-X0;we literal 0 HcmV?d00001 diff --git a/static/images/tutorials/message-channel-flow.png b/static/images/tutorials/message-channel-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e849c717edb248e92be0a464549d24946fc9d6 GIT binary patch literal 24967 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 literal 0 HcmV?d00001