Developer RabbitMQ Integration

Rabbit MQ header

GpsGate is now integrated with RabbitMQ. This allows you to forward devices’ track data and live events to a RabbitMQ installation and consume it as you wish.

  1. Login to SiteAdmin and navigate to Plugins.
  2. Click on Get More Plugins and install RabbitMQ.
  3. In Site Admin, navigate to Integrations, select RabbitMQ, and click on Add. You should see the following form:
  4. RabbitMQ Configuration
  5. Fill all the fields and save the configuration. During that step you can click on Test in order to test if your configuration is correct.
  6. Once saved and tested, navigate to Site Admin -> Applications -> Search and Manage.
  7. Click on the application in which you want to enable the newly created RabbitMQ configuration.
  8. Click on Privileges and features, find and enable RabbitMQ, as well as the configuration you’ve created.
  9. RabbitMQ Privilege
  10. Click on Save.

For Track Messages:

  1. Login to the Vehicle Tracker application you’ve enabled RabbitMQ in.
  2. Click on Admin -> Roles. The Roles window will open.
  3. Click on Create copy of a already existent Role and give it a new name, such as RabbitMQ.
  4. Select all the users for which you want to enable the Track data to be forwarded to your RabbitMQ installation.
  5. Click on Save.

For Event Message (Currently available in Beta):

  1. Login to the Vehicle Tracker application you’ve enabled RabbitMQ in.
  2. Click on Admin -> Event Rule. The Event Rule list window will open.
  3. Create a new Event Rule or modify a current one. About Event Rules.
  4. In the Notifier section, add a new Notifier of type RabbitMQ
  5. Select the RabbitMQ configuration to which you want to post the Event messages
  6. Optionally add a Value. This can be some text and/or different signals values selected from the dropdown menu
  7. Select when to Nofity: Start, End, Start and End, or Always
  8. Save the Event Rule
Date Type

There are 2 type of data supported:

  • Tracks: Vehicle track data which includes current position and all of the vehicle signals (including field script and accumulators)
  • Events: Live events using a Event Rule RabbitMQ Notifier
  • Serializer Type

    We support two serialization types: Json and Protobuf. Protobuf is recommended since its data is much smaller which will make the data forward faster.

    Json definition for Track messages:

    Protobuf definition for Track messages:

    Json definition for Event messages: Protobuf definition for Event messages: Independently of the serialization, Utc is the track timestamp in milliseconds since Unix Epoch and Speed is in m/s.
    Technical details
    The RabbitMQ is set up to go through a RabbitMQ Exchange of type topic. Read more here: RabbitMQ topic exchange. This allows you to create multiple queues which will be routed using the Exchange Key.
    Routing Key
    The Routing Key is templatable, meaning you can use several user specific data to compose the Routing Key. Currently we support three templates:
    1. username - the username of the user
    2. name - the name of the user
    3. imei - the IMEI of the reporting device
    Here are a few examples of how to use it:
  • Tracks.[imei]
  • User.[username]
  • [imei]