Skip to content
R Khumanthem edited this page Jun 15, 2017 · 12 revisions

Common Keywords:

Following are common keywords that are used throughout the documentation.

  1. BAL: Business application layer. External process where application messages are processed.
  2. Upstream Messages****: Messages originating from an IOS/Android app.
  3. Downstream Messages: Messages originating from a BAL.

What is GIMMM?

GIMMM is an acronym for GIve Me My Message. The corny name was borne out of my frustration with my inability to come up with a fancy name like other projects I admire. It is a C++ implementation of the FCM Application Server. As with any daemon, it is fully event driven and makes use of the very cool QT signal and slot framework. It handles all messages as defined in the FCM App server XMPP protocol specification. It however doesn't process the application messages itself. Upstream application messages are simply forwarded to an external process aka business application layer aka BAL (see GIMMMCLIENT for reference implementation) where they are expected to be handled. It can also receive downstream application messages from the external process and upload them to the FCM connection server. The FCM connection server then forwards those messages to the ios/android client it is intended for. These downstream application messages originating from the external process could be in response to a upstream message received earlier or messages generated by the external process as as a result of some business logic implemented in the external process. For a reference implementation of the external process see GIMMMCLIENT.

What is it used for?

  1. IOS/ANDROID APP ----> FCM CONNECTION SERVER -----> GIMMM --> GIMMMCLIENT

    e.g

  2. IOS/ANDROID APP <---- FCM CONNECTION SERVER <----- GIMMM <-- GIMMMCLIENT

    e.g A flood notification system.

  3. IOS/ANDROID APP <----> FCM CONNECTION SERVER <-----> GIMMM <---> GIMMMCLIENT

    e.g A conversational system where GIMMM acts a some mediator, an asynchronous sub/pub system where you subscribe from your app and your BAL response asynchronously when certain criteria are met.

Table Of Contents

Intro

Getting started

Advanced usage

FAQ

Clone this wiki locally