The RSMB MQTT-SN broker written by Ian Craggs of IBM isn’t currently being actively developed, but it is still invaluable for anyone wanting to get experience using MQTT-SN.
The RSMB broker functions both as a broker allowing messages between MQTT-SN clients, MQTT clients, and as a Gateway allowing MQTT-SN clients to exchange messages with MQTT clients as shown in the diagram below:
Installing the Broker
You can download the RSMB ( Really small message broker here . Unzip it.
When you unzip it you should see a directory structure like the one below:
Open the RSMB folder and go to the src folder:
In the src folder you will find the source files (.c and .h files), it also contains a Makefile that contains instructions to build the broker.
Navigate to this directory and run make to compile the broker.
Note: On Linux the compiler will already be installed and so this will work. However on Windows you will need the necessary software installed. I have only done this on Linux.
You get two brokers called broker and broker_mqtts.
The broker program only support MQTT over TCP.
The broker_mqtts is the one you need to run MQTT-SN.
I copied the broker files into a directory of their own and created a configuration file called text.txt.
In the configuration file I turned on detailed logging and set the broker port for 1884 just to test it. here is the file.
To run it at a command prompt type.
If you want the broker to advertise the Gateway address then use this config file.
trace_output protocol # normal MQTT listener listener 1883 INADDR_ANY # MQTT-S listener listener 1885 INADDR_ANY mqtts # optional multicast groups to listen on multicast_groups 22.214.171.124 #This will advertise the Gateway address to clients # optional advertise packets parameters: address, interval, gateway_id advertise 126.96.36.199:1885 30 33
Notice that in the config file above MQTT uses the standard port 1883:
listener 1883 INADDR_ANY
and mqtt-sn uses port 1885.
listener 1885 INADDR_ANY mqtts
You will need to configure the client to listen on port 1885 and Multicast IP of 188.8.131.52 to receive the messages.
This is what the output of the Python client shows when gateway is found
64 bit Processors
If you want to run it on a 64 bit processor it may fail with a strange warning that it can’t find the file.
On Ubuntu you need to do the following:
Screen shot above taken from this forum post.
There aren’t any as far as I am aware there is a Gateway available and released by the Eclipse foundation.
There is a very useful getttingstarted.htm file in the doc folder
Related Tutorials :