So basically if you are an expert. Find/install a XMPP client, then register/buy/install an XMPP server. Oh you probably want some SRV DNS entries as well. Then ensure your client and server support and have enabled XEP-0198, XEP-0313, XEP-0352, XEP-0280, XEP-0363, XEP-0374, XEP-0357 then in theory you can have a reasonable user experience.
However in reality opening a TCP connection to a server will silently drop and all the discussed behavior depends on the cellular provider sending an RST packet back when that happens.... which often doesn't.
So because google negotiates with carriers to not time out GCM connections those don't time out. Unfortunately other connections do, thus the power efficiency of other push based approaches on android.
However in reality opening a TCP connection to a server will silently drop and all the discussed behavior depends on the cellular provider sending an RST packet back when that happens.... which often doesn't.
So because google negotiates with carriers to not time out GCM connections those don't time out. Unfortunately other connections do, thus the power efficiency of other push based approaches on android.