InterNiche/HCC Logo

Networking Protocol Software for Embedded Processors
Click Here to Contact Us via Email.
Also, consider using our Contact Form

MQTT Client : Frequently Asked Questions

⇒⇒Expand All FAQs
1:What is MQTT?
MQTT is an application-level protocol, originally defined by IBM and then made public. Widely used in IoT devices, it is a TCP-based, Publish/Subscribe architecture wherein Clients pass data through a centralized Broker. Clients have been written in multiple languages and with varying levels of completeness. InterNiche's MQTT/IoT Client fully implements the requirements or the v3.1.1 specification.
2:What are MQTT's system requirements?
InterNiche's MQTT/IoT Client can run with or without an RTOS, and on just about any system supported by an ANSI 'C' compiler. Specific footprint requirements can be obtained through
3:How much do I need to learn before I can write an MQTT application?
Obviously, the more you know of the protocol the better you can take advantages of it, but since InterNiche's MQTT/IoT Client comes with a fully operational example application there is no reason you can't start playing with it 'right out of the box'.
4:I'm not familiar with InterNiche. Who are they?
For over 25 years InterNiche has developed TCP/IP-based protocols and application for embedded/IoT devices. InterNiche's source code products are written in ANSI 'C', are portable across OS and CPU architectures and have no per-copy royalties. Their 'closed source' software underpins many products you use every day.
5:Must I use InterNiche's TCP/IP with their MQTT/IoT Client?
Nope. One of the advantages of working with InteNiche is its adherence to specifications - and that includes APIs as well as on-the-wire details. Our MQTT/IoT Client is portable to other operating systems, CPU architectures and TCP/IP stacks.
6:What are the licensing terms of InterNiche's MQTT?
Like all InterNiche protocol software, the source code license includes pre-paid royalties, the amount of which depends upon whether you sign a Product, Platform or Architecture license. Details can be explained by
7:What's the difference between 'IoT' and 'embedded'?
From InterNiche's perspective: Nothing. The primary characteristics of 'Embedded Devices' are low memory and high reliability - exactly what are important for the Internet of Things.
8:What kinds of devices/application use MQTT?
Sensor nodes; Remote device controllers; Message delivery systems; Water control systems; Lighting Systems; Electronic Signs; Audio control systems. In other words, MQTT should be considered for any application where data is primarily 'one way' and real-time interaction is not required.
9:What kinds of data can be sent via MQTT?
MQTT Application data is UTF-8 encoded by the protocol library prior to transmission. Since UTF-8 is a character encoding capable of encoding all possible characters, your application send anything so long as its encoded length is less than 64K bytes.
10:Can MQTT be used with/without SSL?
Yes. Secure and 'insecure' connections use different TCP ports when they establish their link with the broker. For standard/cleartext data the client connects to port 1883, and for SSL/TLS-secured communication port 8883 is typically used
11:Do you also provide a Broker?
No. That kind of infrastructure is best left to those who are familiar with 'off board RAM' and don't count data in bytes. InterNiche focuses on the small-footprint, resource constrained side of the link.
12:Do I have to subscribe to 1000 topics to hear data from 1000 devices?
No. The MQTT topic subscription mechanism supports wildcards, so a single 'subscribe' may do it all depending on how you have organized your topic tree.
13:Who is using MQTT?
Some of today's biggest data players are using MQTT:
  • FaceBook's Messenger Mobile Client
  • Amazon's AWS IoT Platform
  • IBM WebSphere MQ Telemetry and MessageSight
  • Software AG Universal Messaging
14:Is InterNiche's MQTT covered by GPL?
No. InterNiche products are 'closed-source' and do not subject your own development efforts to GPL's requirement that you release your proprietary software to the public.