How Mesibo WorksEstimated reading time: 4 minutes
Mesibo is a platform for developers to quickly develop applications with real-time messaging, voice, and video calls. However, before we go further, let’s understand, what is a Real-time Message.
A real-time message could be anything, a few popular examples are:
- You are sending ‘Hi’ to your friends over WhatsApp is a real-time message.
- You are sending a photo OR a location to your friends over Telegram is a real-time message.
- You are sending a request to Uber for a cab is a real-time message - it’s invisible to you but underneath what goes is a real-time message.
- Subsequently, Uber sending messages to a group of drivers to get you a cab is a message (group message).
- Your WebRTC client sending SDP to the other end is a real-time message.
One of the distinguishing characteristics of real-time messaging is that messages are delivered as it happens, almost instantaneously. However, there are situations in which a real-time message may become non-real-time when one of the endpoints is offline. For example, you are sending a message to your friend in WhatsApp, here are possible outcomes:
- Your friend is online and she will get your message almost instantaneously, this is a real-time message.
- Your friend is offline. The server will store this message for you and it will be delivered to your friend when she is online again. This is how a real-time message (the one you sent) can become a non-real-time message.
Later, we will see how to awake remote-end on need basis using push notifications so that you can maximize the possibilities of delivering your messages in real-time.
How Mesibo Works
Mesibo is a high performance, high-availability, asynchronous real-time messaging platform that allows your users (endpoints) to communicate with each other in real-time. Unlike other platforms, Mesibo is entirely written in C++ with state-of-the-art architecture and reliability to give you unlimited scalability from day one. Later we will see how mesibo architecture gives you an edge over homegrown implementations that are unable to scale once you reach a critical mass.
Mesibo makes it extremely simple to enable real-time communication between your users. All you have to do is:
- Let mesibo know about each of your users. Mesibo will create an access token for each user and give it to you (using mesibo backend API)
- You give respective access tokens to your users.
- Your user uses this access token in Mesibo real-time SDK to create a real-time connection with the mesibo server to send and receive real-time messages, voice, and video calls.
Isn’t it absolutely simple? We handle all the complexities for you whether it is network conditions, reconnecting, redundancy, latency, buffering, and even user interface - mesibo SDK and backend takes care of everything for you.
A more elaborate real-life scenario below in which Alice and Bob registers which your backend, each gets real-time access token from mesibo and start communication in real-time.
The power of mesibo is to make it extremely trivial to send and receive arbitrary real-time messages by using well-thought-of design patterns. In short,
- To send a message, invoke one of the messaging APIs. You can specify the destination (a user or a group), type of message, expiry if any, and your message. That’s about it! mesibo will send a message and also inform you about the status of messages sent in real-time.
- To receive messages, implement mesibo listeners (delegates in iOS). mesibo will inform you whenever you receive any messages or calls.
- To send and receive files, implement a mesibo file transfer handler which will upload (to send) and download (on receive) file to or from your server.
That’s it. mesibo takes care of everything including connection handling, retries, error handling, flow control, etc.
mesibo delivers messages instantly if the destination user is online. If not, messages will be delivered as soon as the destination user comes online. This is automatic and transparent to applications, so applications sending messages do not need to worry if the receiving applications are up and running. Conversely, receiving applications do not need to worry about the status of sending application.
In the next section, we will learn about the most fundamental concept in mesibo - a message What is a Message >>communication platform, chat api, chat sdk, concepts, how chat api works, get started, setup, orientation, containers, messaging, group chat, audio call, video call, chat app, chat app ui