Jibe Mobile provides the building blocks to add communication into any mobile app. Whether you are building a new communication app to talk, chat, or video call or you are adding communications into an existing app, Jibe Mobile has the SDK to get you started today.
How it works
When you are ready for a user-to-user sessions, you want to find friends with apps in common. This is done by the game making Jibe API calls over HTTP(S) to the Jibe Cloud.
With a single click you can initiate an session request that is sent via SIP (over TLS/TCP*) using just the phone number or the user ID of player two.
The Jibe Cloud authorizes the session request.
The request is delivered to player two via SIP over TLS/TCP.
The Jibe Engine wakes up the app and presents a dialogue to user to either accept or reject the session request from the other user.
Once the game session request is accepted, the session is setup, data is exchanged using RTP over UDP.
And then when it’s time to text chat, data is exchanged over MSRP, which is designed for mobile, and the traffic is carried over TLS/TCP.
Real time voice and video uses RTP over UDP.
Low latency data
Reducing latency is a critical ingredient in the Jibe platform. We've designed Jibe from the group up thinking about mobile and the next generation of real-time apps. We focus on all the variants of latency: (1) static latency, (2) dynamic latency and (3) protocol-induced latency.
Static latency reduction: Take out hops and minimize geographic distance through “optimal path routing” on top of a geographically distributed grid of media proxies/relays, which interconnect users across mobile networks. These proxy servers have been strategically located at major hubs and close to the edges of the major mobile networks in order to minimize latency. One could say that Jibe acts like a Content Delivery Network (CDN) only for low-latency app.
This approach alone delivers a latency reduction of up to a few hundred milliseconds when compared to a “centralized” online app server (e.g. in the US), which is accessed by users in a different region (e.g. in Europe).
Dynamic latency reduction: Jibe employs several techniques for minimizing latency arising from congested networks ranging from leveraging WiFi QoS to deep integration with the leading mobile networks.
Protocol induced latency reduction: The Jibe SDK has been fine tuned for mobile networks and built on top of UDP for the fastest possible transports without unnecessary retransmissions or TCP parameter arbitration. Reliability can be added on top of this where required by the game without sacrificing the underlying network performance.
Just how fast is Jibe's Network?
The key techniques for latency reduction are provided with the use of the Jibe SDK for developers. Based on global tests we have conducted, we are seeing the following performace benchmarks.
Game title: Air Hockey (2 players / extremely latency sensitive title)
Network parameters: packet size ~1KB / 30 packets per second
Mobile networks: Verizon Wireless, AT&T, Sprint, Vodafone Spain, Vodafone Germany, O2 UK, and Telefonica Spain were part of the trials with participants competing freely with others on a different network.
Player location: Players were always in the same geographic region/country.
The following table shows typical latency figures from successfully established app sessions:
The performance has since been validated with additional game titles from various genres including a high-end car racing simulation, a 3D platform title and casual games leveraging the Jibe network for game data and additionally for live in-game audio and video.
As all mobile users know, there will be situations where the network coverage is too poor or the connection to unstable to sensibly use any application requiring data connectivity – let alone play an online game. So how do you avoid that users try to play each other (either directly or through a random match-up) and end up with a poor experience? The short answer is – "Ping before you play".
The Jibe Real-Time Engine must be installed and running in the background on Android. The Jibe Engine is embedded within Arena so either the stand-alone engine or Arena must be installed.
Jibe required Android 2.2 or newer.
Communicate with the Jibe cloud - before a live session is established - is done via HTTP(S) to request friend and app information.
Instant Challenges are exchanged via SIP over TLS/TCP.
Real-time media uses RTP over UDP. RTP is specifically designed for minimal latency and media streaming.