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?
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.