Mesibo Real-time and Backend APIs - Overview
mesibo is a powerful real-time communication platform to quickly add robust and secure real-time messaging, group chat, voice and video calls, conferencing, and chatbot into your mobile and web applications.
The key objectives while designing mesibo APIs were security, reliability, performance, and scalability. We have seen APIs as complex as the universe making apps unnecessarily complex and error-prone. We have instead worked hard to make mesibo APIs simple to use, yet powerful. In just an hour, you should be able to start using Mesibo APIs in your code.
In this section, we will describe various mesibo chat APIs in detail. However, before we move further, we highly recommend reading the get started tutorial and also referring to the source code of one of the mesibo sample apps in GitHubopen_in_new to learn how APIs are used. You can then refer to this section on a need basis.
There are two types of mesibo APIs
This is the API that you will integrate with your user-side applications (e.g., Android, iOS, Flutter, Web, C++, Python, etc.). mesibo real-time APIs allow users to communicate in real-time by providing APIs for messaging, calls, conferencing, etc.
mesibo backend API is a set of REST-like HTTPS APIs which allows your backend servers to communicate with Mesibo to perform various administrative tasks such as creating and managing users, groups, accessing stats, etc.
For most Apps, the backend APIs play a very limited role of creating users and generating user access tokens which will be required by real-time APIs. Rest all functionalities can be accomplished by using Real-time APIs.
The real-time SDK APIs use consistent naming and signatures across all supported platforms, allowing easy cross-platform development.
The documentation therefore only shows the syntax for one platform, unless a platform-specific example is necessary. For instance, the
setAccessToken API is invoked similarly across platforms:
Java and Kotlin
By maintaining this consistency, the mesibo APIs work across Android, iOS, Web and other platforms with no or minimal changes. Hence, the documentation focuses on core API usage, rather than platform-specific syntax.
Although all the APIs have the same name and parameters across platforms, some parameter types may vary. For example, a parameter is of type
string for a particular API, the
String is used for that parameter on Java while
NSString * is used for the same parameter on iOS Objective-C. The table below summarizes the generic type used in documentation and the corresponding type used in the actual implementation. If the parameter types are the same across platforms, they are not mentioned in the table, for example, int, MesiboProfile, etc.
|String||String||String||NSString *||String||var||char * or const char *|
|boolean||boolean||boolean||BOOL||Bool||var||int (1 or 0)|
|byte||byte||byte||NSData *||NSData *||var (array)||char * or const char *|
|long||long||long||uint64_t or uint32_t||long||var (array)||uint64_t or uint32_t|
mesibo Real-time APIs are broadly classified in the following categories:
Initialization APIs - Set of APIs for initializing Mesibo and start connection to Mesibo cloud or your on-premise servers.
Messaging APIs - Core Messaging APIs for sending messages, forwarding, resending, reading messages from the database etc.
File Transfer APIs - APIs to send and receive files.
Voice and Video Calls APIs - APIs for voice and video calls.
Voice and Video Conferencing APIs - APIs for voice and video conferencing.
Profile and Contact Syncronization APIs - APIs to manage user and group profiles.
Group Management APIs - APIs to create and manage groups.
End-to-end Encryption APIs - APIs for end-to-end encryption.
You can click on individual sections to go through each API category. Although, it is not necessary to go in the order but recommended for the first reading.