MQTT-SN RSMB Broker Overview,Install and Configuration

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.

See





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:

rsmb-functionality-diagram

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:

rsmb-directory

Open the RSMB folder and go to the src folder:

rsmb-files

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.

mqttsn-broker-config

To run it at a command prompt type.

./broker_mqtts test.txt

start-mqttsn-broker

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 224.0.18.83
#This will advertise the Gateway address to clients
# optional advertise packets parameters: address, interval, gateway_id
advertise 225.0.18.83: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 225.0.18.83 to receive the messages.

This is what the output of the Python client shows when gateway is found

mqtt-sn-gateway-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:

run-32-64-ubuntu

Screen shot above taken from this forum post.

RSMB Alternatives

There aren’t any as far as I am aware there is a Gateway available and released by the Eclipse foundation.

Resources:

There is a very useful getttingstarted.htm file in the doc folder

Related Tutorials :

Please rate? And use Comments to let me know more
[Total: 2    Average: 3/5]

Leave a Reply

Your email address will not be published. Required fields are marked *