This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Corporate Messenger Development
Background
Today, instant messengers and various applications for voice and video calls are used both for private conversations and for communication within organizations. However, few off-the-shelf solutions can meet the needs of large enterprises. Many of them do not have enough capacity to support a significant number of active users or provide the required level of reliability. Hence the demand for custom solutions of this type.
Request
A large company contacted Integra Sources and asked us to develop a corporate messenger with standard functionality for such solutions and capable of supporting at least 10,000 active users. The client asked the team to pay special attention to the system’s performance.
Solution
Client application development
With the help of the Qt framework and its tools, we created a cross-platform C++ client application compatible with Windows and macOS. The application is responsible for direct interaction with the user and exchanging messages with the server.
On the left side of the screen, users can see channels, as well as personal and group chats. Chats can be pinned to the list, so that their position does not shift, or marked as favorites. At the top of the screen, users can switch between favorites, others, and all chats and channels. The panel on the left allows you to check notifications, perform search, add contacts, create group chats, channels, and sort icons.
The top of the chat screen displays the photo and the name of the contact (person, group chat, or channel). You can also see the list of participants there.
By clicking on their own icon, users can go to the profile menu that allows them to set up their status, view the profile ID, specify their email address, date of birth, and language, change settings, and share their contact with other contacts.
By clicking on the photo of a contact, you can see the person’s profile. It displays the profile’s ID, email address, and date of birth. In this menu, you can also view the media files you and the person have exchanged, share the contact with others, and block or delete it.
Server application development
The server app is responsible for the main functionality of the system – receiving, forwarding, and queuing messages, identifying recipients, etc. It contains the software, frameworks, and databases necessary for the operation of the client application.
For communication between the client and server applications, the team used the WebSocket protocol, which is a standard way to increase the performance of a system. WebSocket provides bidirectional data flow between the client and the server and, unlike HTTP, does not require the client to poll the server every second.
As part of this task, we also created:
- A Rest API responsible for additional functionality of the client application: user authorization, profile customization, etc.
- Data storage for messages and profiles based on the MongoDB database.
- Dedicated file storage for media files.
Result
The corporate messenger developed by Integra team is capable of supporting more than 10,000 active users and processing up to 200 messages per second. We have created a client and a server application, a Rest API responsible for user authorization, profile customization, and other functions, as well as data storage for messages and profiles based on the MongoDB database.
The functionality of the solution includes the following features:
- User registration and authorization;
- Instant messages;
- Voice and video calls;
- Group chats;
- End-to-end encryption;
- Sharing media files;
- Search by contacts, messages, and attachments.
Active Users
Messages per sec.
You might also like...
Industrial Emergency Detection System
The solution uses artificial intelligence to process images from IP cameras, detect dangerous incidents, and send an alarm to a Jmix application.
LEARN MORE
Licensing Service Development for 3D Printers
The service uses the SHA-256 hashing algorithm to verify the authenticity of licenses. We designed the solution, created a web application with Jmix and enhanced the functionality of the desktop application.
LEARN MORE