MQTT.Cool is a gateway designed for boosting existing MQTT brokers by extending their native functionalities with new out-of-the-box cool features.

MQTT.Cool connects to any third-party MQTT broker to make it accessible on the web in a secure and scalable way.

Any web page running inside a web browser will instantly become an MQTT client, ready to send and receive real-time MQTT messages, whatever MQTT broker is used on the back end. MQTT.Cool makes the IoT web friendly.

The highly optimized Lightstreamer engine and protocol are used to deliver MQTT messages over WebSockets and HTTP, with low latency and massive scalability.
On the client side, a Paho-like API is provided as part of the JavaScript client library.
On the server side, a Java hook API is provided to implement your own authentication and authorization. This is optional, so that in simple cases you can avoid any server-side development.


Give Your MQTT Broker a Boost!

Architecture Boost

Connect to Any MQTT Broker from Anywhere

Connect to your MQTT broker from anywhere on the Internet, even behind the strictest corporate firewalls and proxies, without sacrificing security. No need to fight with firewall rules and change your security policies.

Your MQTT broker will be instantly available through standard Web protocols (HTTP and WebSockets). This means your MQTT broker does not need to support WebSockets because it’s up to MQTT.Cool to re-encode the MQTT protocol into a very efficient and firewall-friendly protocol (called the Lightstreamer protocol).

Even if WebSockets are not supported by the network infrastructure (for instance, they might be blocked by a client-side proxy), the connection will automatically work over HTTP, thanks to StreamSense, Lightstreamer’s state-of-the-art implementation of HTTP streaming and HTTP long polling.

What happens if a client gets disconnected, for any reason? No worries—the MQTT.Cool client library will automatically reconnect and re-establish the correct subscriptions.

Develop Web Clients with Our Eclipse Paho-like API

We provide you with a JavaScript library that works in any existing browser, including mobile browsers, as well as Node.js.

The library exposes an Eclipse Paho-like API. Any HTML page can easily become an MQTT client, able to publish and subscribe to/from MQTT topics, irrespective of which MQTT broker you are using. This way, web pages can exchange messages with IoT devices and existing MQTT applications as well as interact with other web pages in real time.

Similarly, any Node.js application will be able to access any MQTT broker and produce/consume messages.

Access Multiple MQTT Brokers
A single MQTT.Cool instance can connect to different MQTT brokers. For example, it might connect to both a Mosquitto instance and a HiveMQ instance and make these brokers available to the clients. If the same client needs to access both the brokers, then it will be able to do it with a single physical connection to MQTT.Cool because all the traffic is multiplexed over a single link for each client.

Performance Boost

Scale Up Your MQTT Broker with Massive Fan-Out

Scale to millions of MQTT clients by offloading the fan-out from your existing MQTT broker to MQTT.Cool.

Clients will physically connect to MQTT.Cool, which uses the world-class Lightstreamer engine to handle massively concurrent connections. MQTT.Cool scales horizontally by automatically employing all the available cores; it also scales vertically with multiple instances managed by any common load balancer.

Always Receive Fresh Data with Adaptive Throttling and Conflation

Imagine an IoT sensor that produces hundreds of measurements per second and publishes them on MQTT. You have a web page showing such data in real time.

Now, imagine a user watching that page on a desktop browser with a broadband connection and another user watching the same page on a mobile browser with a bad signal. MQTT.Cool will automatically throttle the data flow for each user, to adapt to any network congestion. It will resample the data on the fly while applying conflation, so that the two users will both see real-time and coherent data but with different update rates.

Get Full Control over Bandwidth and Frequency

In addition to adaptive throttling, each client can explicitly configure a maximum bandwidth for its downstream channel. For example, a client might request to never consume more than 10 kbps. Queuing, resampling, and conflation will be applied automatically to respect the allocated bandwidth.

Similarly, a maximum update frequency can be requested by each client for every shared subscription. For example, a client might subscribe to a topic specifying that no more than 2 messages per second must be delivered.

Security Boost

Authenticate Users with Total Flexibility

Typical MQTT authentication is based on username and password only. Furthermore, it can be a nightmare to integrate MQTT authentication offered by a typical MQTT broker with existing enterprise authentication systems.

MQTT.Cool offers a pluggable authentication system, which is totally independent of the target MQTT broker. Users' authentication is managed by MQTT.Cool via your own integration code and based on the Hook API. Not only will your authentication code be able to receive a username and password, but it will be passed full connections details (including client remote IP, user agent, cookies, client-side certificates, etc.).

It is straightforward to develop a Hook that integrates MQTT.Cool with an existing user DB. You can also switch MQTT broker without losing your authentication logic.

Add Fine-Grained Authorization

How do you make sure that user A cannot subscribe to topic X and user B cannot publish to topic Y? This is left to each MQTT broker proprietary authorization system (if available at all).

With MQTT.Cool, you can add very fine-grained authorization to any MQTT broker in a completely broker-agnostic way. With the Hook API, any action performed by a user is authorized via a specific callback to your own code. As for authentication, you have total flexibility in defining your security policies, based on your specific needs. Again, you can switch MQTT broker without losing your authorization logic.

Offload TLS/SSL Encryption

MQTT.Cool can take care of encrypting the traffic with the clients, based on TLS/SSL configurable cipher suites and certificates. This way, you can remove the burden of encryption from your MQTT broker and offload it to MQTT.Cool, which uses WSS and HTTPS for the client connections.

Increase Security by Avoiding Public Access to the Broker

You might want to hide or firewall-protect the connection details of your MQTT broker (address and port) and make it reachable from the Internet only through MQTT.Cool, which will reside in the DMZ. This way, you will add a layer of security, preventing the broker from dealing with external and potentially unauthorized connections.

MQTT.Cool Server Editions
Highly Scalable Architecture
StreamSense for WebSockets and HTTP
Shared Broker Connections
Multi-broker Connections and Multiplexed Channels
Adaptive Throttling
Bandwidth and Frequency Control
TLS/SSL Support
Monitoring Dashboard
Detailed Customizable Logging
Server-Side APIs
Java Hooks for Authentication and Authorization
JMX Management API
Client-Side APIs
JavaScript Client API
Can Be Used in Production
Warranties and Indemnification
Support and Maintenance
Annual subscription based on the number of servers.
Contact sales
To get any further information, please contact or call +1 (650) 353-3330.