FAQ

Is MQTT.Cool an MQTT broker?

No, MQTT.Cool is not an MQTT broker. We call it an “MQTT booster”. Basically, it’s a web gateway that you put in front of any MQTT broker to boost its security, performance, and architecture. So, you still need a third-party MQTT broker of your choice, then you add MQTT.Cool to get more features and more flexibility.

What is MQTT.Cool in a nutshell?

MQTT.Cool is a software gateway that you put in front of any existing MQTT broker to instantly extend its functionalities with new out-of-the-box cool features. With MQTT.Cool you can boost the architecture, the performance, and the security of your MQTT-based solution:

– Connect to any MQTT broker from anywhere
– Traverse any proxy and firewall securely
– Scale up your MQTT broker with massive fan-out
– Always receive fresh data with adaptive throttling and conflation
– Add fine-grained authorization
– Offload TLS encryption
– And much more…

MQTT.Cool is powered by Lightstreamer, the premier engine for real-time messaging and data streaming.

Why should I need MQTT.Cool?

You probably already have an MQTT-based solution in place or perhaps you are going to develop one. In both cases, you might need at least one of the 10 “boosts” that MQTT.Cool can give your solution. For example, you might need to add some fine-grained authorization policies, to prevent any client to be able to publish and subscribe on any topic. Or you might want to make the big real-time data produced by your sensors to web applications, without cluttering the browsers with too much data. In these and many other cases, you simply add MQTT.Cool to your architecture to take benefit from extended features.

How does MQTT.Cool boost the security of my MQTT-based solution?

MQTT.Cool offers a pluggable authentication and authorization system, which is totally independent of the target MQTT broker. Users’ authentication is managed by MQTT.Cool via your own integration code based on the Hook API. For example, you can make sure that user A cannot subscribe to topic X and user B cannot publish to topic Y, without depending on broker’s proprietary extensions.

MQTT.Cool takes care of encrypting the traffic with the clients, based on TLS configurable cipher suites and certificates. You can remove the burden of encryption from your MQTT broker and offload it to MQTT.Cool.

You can protect your MQTT broker and make it reachable from the Internet only through MQTT.Cool. This will add a layer of security, preventing the broker from dealing with external and potentially unauthorized connections.

How does MQTT.Cool boost the architecture of my MQTT-based solution?

Your clients can 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 with networks that might not support WebSockets. Any HTML page displayed in any browser can instantly become a fully-fledged MQTT client.

A single MQTT.Cool instance can connect to different MQTT brokers. If the same client needs to access multiple brokers, it will be able to do it with a single physical connection to MQTT.Cool, thanks to multiplexing.

How does MQTT.Cool boost the performance of my MQTT-based solution?

MQTT.Cool automatically throttles the data flow for each user, to adapt to any network congestion. It resamples the data on the fly while applying conflation, so that all the users will see fresh coherent data, even if they are connected over tiny-bandwidth mobile networks. In other words, MQTT.Cool is smart enough to optimize the real-time data flow, rather than forwarding it as a dumb pipe. You can even define a maximum bandwidth for the downstream channel of every client and a maximum update rate for every fanout subscription. Queuing, resampling, and conflation will be applied automatically. Check out the article “Throttling MQTT Data” to learn more.

You can scale to millions of MQTT clients by offloading the fan-out to MQTT.Cool, which uses the world-class Lightstreamer engine to handle massively concurrent connections.

Does MQTT.Cool work with any MQTT broker?

Yes, we have tested MQTT.Cool with many different MQTT brokers, both on-premises and cloud-based. The minimum requirement is that the broker can speak the MQTT protocol v3.1.1. All the features MQTT.Cool implements are totally independent of the broker.

Is it easy to use MQTT.Cool?

If you are already familiar with MQTT, it is super easy to use MQTT.Cool. On the server, you just need to deploy MQTT.Cool in front of your MQTT broker and configure it to connect to the broker. No code development is required, unless you need to implement your own authentication and authorization logic. On the client side, we provide you with a JavaScript API that resembles the well known Eclipse Paho API. You will use it seamlessly as you do with Paho, but under the hood, the extended features of MQTT.Cool will be available.

How does MQTT.Cool work?

MQTT.Cool is based on the Lightstreamer engine, a high-performance server used for many years by top-tier banks, space and defense organizations, media companies, and others to deliver real-time data across the web efficiently and reliably. What MQTT.Cool does is to transparently remap the MQTT protocol over the Lightstreamer protocol, to take benefit from the capacity of Lightstreamer to move high volumes of data through the web. So, clients are developed with a Paho-like API, but under the hood they speak the Lightstreamer protocol with MQTT.Cool. Then, MQTT.Cool speaks the MQTT protocol with the MQTT broker. This way, you can mix native MQTT clients directly connected to the MQTT broker with web clients connected to MQTT.Cool.

Can a pure MQTT client connect to MQTT.Cool?

Clients that speak the MQTT protocol will connect directly to the MQTT broker. Client that needs the extended features of MQTT.Cool will connect to the MQTT.Cool server. The two types of clients will communicate seamlessly based on publish/subscribe via the MQTT.Cool/MQTT broker chain.

What languages and platforms does MQTT.Cool support?

On the client side, we currently provide a JavaScript API for browser-based clients and a JavaScript API for Node.js clients. The web library is guaranteed to work in any existing browser, including mobile browsers and older browsers, even if WebSockets are disabled. On the server side, MQTT.Cool can be deployed on any operating system and any type of machine, including bare metal, virtual machines, and Docker containers. If you need to develop your own “Hooks” (extension points to inject your own authentication and authorization logic), a Java SDK is provided.

Do you provide Android and iOS client APIs?

They are on our short-term roadmap. In addition to the JavaScript API, we will release official Android and iOS APIs, compatible with Java, Kotlin, Objective-C, and Swift. Please let us know if you need them urgently and we will see what we can do.

What is a Hook?

A Hook is a piece of code that you can develop with our Java SDK, which is deployed within the MQTT.Cool server. It takes care of managing your custom authentication and authorization logic. To see an example, check out GitHub.

Does my infrastructure need to support WebSockets?

Without MQTT.Cool, the only way to connect to an MQTT broker from behind a proxy/firewall is through WebSockets. But, even if WebSockets are widely supported today, there are still several cases of transparent proxies, telco proxies, and corporate firewalls, which simply block them. With MQTT.Cool, the best transport is chosen automatically for each client, leveraging HTTP Streaming and HTTP Long Polling when WebSockets are blocked.

Does MQTT.Cool work in the cloud (AWS, Azure, GCP, etc.)?

Sure. You can easily deploy the MQTT.Cool server on any cloud-based platform.

Is MQTT.Cool available in a SaaS model (as a service) too?

We currently provide a test MQTT.Cool server, which can be accessed publicly. We are working on a general SaaS offering. But in the meantime, please contact us if you need SaaS and we will be happy to discuss and arrange a custom solution for you.

Is MQTT.Cool free?

We have two editions of MQTT.Cool: Community and Enterprise. The Community edition is completely free, even for production use. Just use it. The only feature that is missing in the Community edition is clustering support for load-balancing and fail-over. In other words, you are not entitled to use more than one MQTT.Cool server instance for each application you deploy. On the other hand, the Enterprise edition supports clustering. Furthermore, on the legal side it provides Warranties and Indemnification and it comes with a Support and Maintenance plan. To get support with the Community edition, you can use the MQTT.Cool Forum.

How is MQTT.Cool Enterprise Edition licensed?

We have several options in place. Usually, you pay annually for the number of server instances you purchased. But you can also pay based on the number of concurrent clients. We even have pay-as-you-go models where you can pay monthly based on the actual usage, in terms of server cores actually employed or number of clients connected. Contact us to discuss your needs

How reliable is the company behind MQTT.Cool?

Lightstreamer Srl, the company behind MQTT.Cool, has a proven track record, with more than a decade of experience in real-time data push and data streaming solutions. With 300+ companies using Lightstreamer products from 6 continents, thousands of servers installed, and millions of end users served, Lightstreamer is a reliable partner when it comes to delivering real-time data on the Internet.

MQTT.Cool Logo

Put MQTT.Cool in front of your MQTT broker and instantly boost the security, the performance, and the architecture of your IoT solution.

Lightstreamer Newsletter

Get the latest updates and news on MQTT.Cool and real-time data.