Connect. Control. Secure.

Round Robin IoT Clustering Example

Round Robin DNS provides a low cost alternative to traditional cloud services. We recommend reading the DZone article Cheaper Alternatives to IoT Cloud Services if you are new to Round Robin DNS.

We have four html frames below, and each html frame opens the SMQ IoT LED example on a separate server. The domain name translates to four IP addresses (four online servers) and you randomly get one of these IP addresses when navigating to However, we have also configured the DNS such that you can navigate directly to a specific cluster node.

Notice that clicking a button in any frame window below is synchronized among all four frame windows. Not only does the SMQ protocol provide synchronization between multiple HTML5 clients, SMQ also automatically synchronizes between the servers in the cluster.

Before clicking any of the LED buttons below, make sure to select the same device in each window. You do this by clicking the same IP address in the left pane for each window below.

We have selected a low cost Virtual Private Server (VPS) provider for our example, and we have the servers located in: Portland, Los Angeles, Phoenix, and Denver. The geographical dispersion provides strong redundancy. The yearly lease for each server is $11.99, thus the total cost for our example cluster is $47.96 per year.

You can connect your own device to the cluster, and the easiest way to do this is to download a simulated LED device for Windows. Simply download and run the program. The simulated device shows up in the above four windows as soon as it connects. You can also compile the SMQ device demo for other platforms, such as Linux and Arduino. See the SMQ source code page for details.

For more information on the SMQ LED demo, see the SMQ tutorial: LED control using SMQ.

Connect your own ESP8266 to the cluster

You may purchase a five dollar ESP8266 device, use the SharkSSL FreeRTOS/lwIP IDE, and upload the SMQ LED demo to the device.

Additional SMQ Videos

The above video is for the tutorial:
A Modern Approach to Embedding a Web Server in a Device.