Research: Software components and services for instant messaging and conferencing (video, audio, text)

By | October 8, 2015

What could be easier than to find ready-to-use solution for messaging? But when you try to analyze these solutions many of them appear to be unsuitable for your needs. Especially if the demand is to build communication between more than 10,000 users at one moment. We made a research that include 4 the most serious and, as we thought, good self-recommended software for messaging. The result is given in the table. You may demure “Why you’ve missed the X software?!“. First, we think these four are the best for our projects. The main feature of these projects is messaging in a cloud of thousands devices. Second, we will gladly discuss about alternatives (post your comments below article). You know we really think that ideal could not be reached, however we must try to reach it anyway.

But let’s back to the research’s result.

Table 1. Comparison of some properties that are most suitable for DevelopEx interactive messaging tools.

Layer

PubNub

Pusher

QuickBlox

Site layer.com pubnub.com pusher.com quickblox.com
Description Chat platform Global Data Stream Network Messaging platform Calling and messaging developer toolkit
Chat One-on-one and group One-on-one and group One-on-one and group One-on-one and group
VOIP + + +
Video calls + + +
Files Photo, video, audio + +
UI Atlas (default UI with wide range of customization) +
Offline sending +
Backend API + + via REST API
Other  – Data Streams, WebRTC, Real-time Dashboards (charts, maps) WebRTC, Events destribution  –
Platforms iOS, Android (upcoming: Web, Windows Phone) All Client: iOS, Android, JS, Java
Server: Go, Java, .NET, node.js, PHP, Python, Ruby
iOS, Android, JS, Windows Phone, Blackberry
Documentation Good (API reference, code examples) Good (API reference, code examples) Good (API reference, code examples) Average (code examples)
Price $600/month
100,000 active users, 100 Gb transfer, 50 Gb storage
$800/month
20,000 active devices, 50M messages
$200/month per add-on
$400/month
10,000 online users, 10M messages/day
$600/month
200 messages/s, 200 pushes/s, 250,000 active users

QuickBlox

First time we used the QuickBlox. This tool is good mainly because of lightweight and highly specialization (messaging using all types of media). The main of QuickBlox’s features are the open-source, cross platform, video calling and instant messaging. As we see from the table it has the most number of ‘+‘, also REST API, good cross platforming, average price and the biggest number of active users. Really good signs to use this tool and we did it.

After some time, we started to develop another project again with messaging properties as main feature. Chatting in real time feature should be as stable as possible, and it should work without delays for each device: PC, phone, tablet, actually anything. The developers team convinced everyone to use another tool. You may ask “Why?” and we answer: “The main reason is that QuickBlox documentation is not so good“. If you are experienced manager, you should know the importance of documentation. Additionally, QuickBlox was updated not long ago. So our efforts for supporting the project were doubled. We would have use reverse engineering to implement this messaging tool well.

PubNub

That’s why we set eyes to the PubNub. We looked more carefully and decided to try. Yes, this tool is the most expensive from the list, has wide range of applying and installed on “just” 20,000 active devices. But the good news is:

  1. it supports the biggest amount of SDK,
  2. it supports WebRTC (the project that enables the web with Real Time Communication capabilities),
  3. it’s fully adapted to global real time interaction between any device that can exists at all.

We’ve not finished the project where PubNub is used yet. But we can say that PubNub is really not bad tool. Likely for next projects we’ll use it again.

As always, feel free to contact us for a consultation!

Leave a Reply

Your email address will not be published. Required fields are marked *