Search code examples
eventsparse-platformwebsocketgoogle-cloud-messagingamazon-sns

Real time messaging service for mobile and desktop devices


I am looking for a solution to push event from my server to clients which will be Android, iOS and Desktop(web) users.

I have seen quite a few posts on Parse, Amazon SNS and Google Cloud Messaging but non of them mention the speeds and most common applications for them or comparison to simple TCP stream or websockets?

I need to have up to 50 events/second bi-directonal throughput per client (¬1kb per event) with max 150ms latency.

What are disadvantages of using just a TCP stream of events versus websockets versus SNS/Parse/GCM?


Solution

  • Push Notifications (GCM and APNs)

    PROS: You can reach the device even if the client application is not running.

    CONS: Low throughput; high latency

    Raw TCP

    PROS: High throughput; low latency; bidirectional

    CONS: Doesn't pass through typical proxies and firewalls; needs the client app to be running

    WebSockets

    PROS: High throughput; low latency; bidirectional; passes through firewalls

    CONS: Not all proxies already support them; needs the client app to be running

    In additions, there are also HTTP Streaming and HTTP Long Polling.