.

Beantwoord

[English] Push notifications and GTalk problems on Android

  • 13 April 2013
  • 12 reacties
  • 2061 Bekeken

Hello,

First, I am sorry that I write this in English, but I don't know Dutch yet. However, I decided to post this topic here and not just open a private ticket, because this may be important nearly for all Android users.

The issue is: when you use GTalk (Google Talk chat), you may notice that it disconnects after every few minutes. And then, even though you may still see that you are online, actually you don't get any messages and your messages don't reach the recepient. You can realize it later, when suddenly you get some very delayed message. It is very easy to reproduce. Just leave your phone for 10 minutes and then try to send a message from some other PC to your GTalk. 
When this happens, the only way to fix it is to reconnect - "Sign out" and "Sign in" again. And after you do that, you suddenly receive all the delayed chat messages that people sent to you.

Even worse - the same happens to all other Google services. For example, to your GMail notifications. Have you ever noticed that for some reason you didn't get email notification on your mobile in time? That's it.

This issue was known worldwide for a while, sometimes switching mobile providers helped, sometimes switching WiFi routers helped, etc.
But recently this issue got a technical explanation, and Google is aware of it. 

In brief, your Android device maintains constant connection to Google servers for push notifications (including those for GMAIL, GTALK etc.). This connection usually does nothing (idle), but when there is some notification, it arrives using this connection. To keep this connection alive, Android sends periodic keepalive messages on it. The problem is that the interval is 28 min for 3G networks. And many mobile operators close idle connections much earlier. That's why this connection is being closed, and you have the issue.
Here is the full explanation: https://productforums.google.com/forum/#!msg/mobile/X0j2BgCVQjI/jkpUW0aI3uIJ

Unfortunately, this happens with SIMYO network as well. Now, technically speaking, it is not purely SIMYO problem - as you can understand from the technical explanation. But SIMYO _can_ maybe make it work. And that's why I would like to ask here if it is possible to solve it, before Google solves that on Android (if this will ever happen).

So what is required, technically speaking, is to ensure that TCP-session to Google servers on port 5228 is kept alive with idle timeout higher than 28 minutes. I would really appreciate your answer on that. This issue causes a lot of problems to Android users worldwide, making many services unusable. Of course, I understand that Google should implement it in other way, but before it happens, it would be really great to have this solution from mobile operators.

Thank you.

P.S. My details: Sony Xperia V with official ROM, Android 4.1.2. Tried several APNs - the default one (apn=portalmmm.nl), the one published on this site (apn=internet), Rabo Mobiel (apn=rabo)...
icon

Beste antwoord door Alex 16 April 2013, 16:16

Bekijk originele reactie

12 reacties

Reputatie 7
Badge +9
I don't own an Android phone (happy user of an iPhone! :p ), but I got interested in the issue that you raise. After a quick internet search I found Push Notifications Fixer (PNF, https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer&hl=en), would that not solve the problem?
Badge +1
I have the same kind of issues on my LG Nexus 4, running Android 4.2.2.
Push notifications are delayed by app. 2 minutes, when the screen's off. It doesn't matter if I'm on the 3g network or Wi-Fi
I'd like to point out that it isn't just the TCP connection, bugging us.
The Nexus 4 and the newer Xperia series like the V and Z are using the Qualcomm S4 Pro Snapdragon chipset.

I found this at the sonymobile forum:

When I'm on WiFi, notification(gmail,whatsapp,viber,facebook...) would delayed for 10s~120s when screen off, especially when using skype or Viber, the phone just won't response the call. Of course WLAN is keeped turning on during sleep, STAMINA is also turned off.
This would not happen when charging or using 3G connection.

I did some research on it, found that this bug came from a Beacon mode power saving(BMPS) function in Qualcomm WCD9310 WiFi module. When BMPS is on, WiFi module would turn into deep sleep mode when screen off. And when the router receive a notification, it wakes up the phone's WiFi module so the phone wakes up and show the notification. But there is a bug in WCD9310 driver makes router can not wake up the phone immediately.
Qualcomm already fixed this bug on WiFi Prima driver v3.2.2.2, but it's a regret Google did not merge it even in Android 4.2.2. Some Geek in XDA merged it in custom Kernel for Nexus 4 finally resolved this bug, I hope Sony could also do some work on it but not wait for Google's next update.

So problem's not just the killed TCP connection, but also the buggy Wi-Fi driver.
All we can do is wait for:
1. Google to merge the newer Wi-Fi driver into Android.
2. Simyo to keep the TCP port 5228 alive.

Thanks for bringing up this subject dmitryperets. Hopefully Simyo can help us out.
Hi Scotsman,

I saw this app too. Unfortunately, my phone is not rooted, I don't really want to root it. And this app requires that.

But I believe it would solve the issue. After all, this app just lowers the interval - just what I would expect from Google to do.
Hi brvandoorn,

Thanks for the info. Well, with WiFi Simyo won't be able to help us. But if it will work well on 3G, it will be great.
Reputatie 5
Badge +10
Hoi dmitryperets,

I know Blackberry's unique selling point is push mail. I thought it is not possible with other devices. Other devices don't support push mail. I'll try to talk with our technical support. Maybe they can fix it.

Greetings,

Alex
Hi Alex,

Thank you for your answer.

Push notifications are very widely used on Android. In fact, even non-Google applications rely on this service. For example, as far as I know, WhatsApp notifications can also be delayed because of the same problem. Gmail and GTalk are affected for sure.

Also, I am not sure, but it seems that something changed recently in your network, because I think that GTalk wasn't disconnecting me so frequently before - now it happens almost all the time. Maybe you started to remove idle connections only recently?

Anyway, hopefully, technical support will bring some good news. Thanks!
Reputatie 5
Badge +10
Hoi dmitryprerets,

For what I know from our technical service there has not been a change in our systeem which has influence on the performence of individual apps. Is it possbile that you've updated your software?

Greetings,

Alex
Hi Alex,

It could be that I just didn't notice this happening before - I am with Simyo for only few month. 
Please ignore my statement about the recent change then.

But the issue is there, and it affects nearly every Android user. The result is simply that you get messages with upto 28 minutes delay - for email this is bearable, but for chat is is too bad...
Reputatie 5
Badge +10
Hi dmitryperets,

You mean your whatsapp messages are also delayed?
Hi Alex,

I am not using Whatsapp, so I can't really tell.
That's why I would focus on Google services only - especially GTalk - because those are affected for certain and it is very easy to see it there.

The easiest way to see it is just to ask somebody to open his GMAIL on his PC and connect to the chat (GTalk). Then you try to send him a message via chat and he tries to send you a message. If the message won't arrive, this is the issue.
In many cases you will also see on Android itself that you are not online - in GTalk app you won't see your contacts (like if everybody was offline). This is also a common indication of the same issue.

I sent you a personal message few days ago with some more technical question...
Reputatie 5
Badge +10
Hoi dmitryperets,

I received your message. I contacted our technical service. They have not changed anything. Can you tell me since when you have this issue?

I would like to know if the same occures when you use an other mail account or chat program. Gmail is always pulling your email. Gmail and Android do not support push mail.

Greetings,

Alex
Hi Alex,

I noticed this issue about 1 month ago, but I am with Simyo for only few month, so maybe I didn't notice it before. So if nothing was changed, maybe it was always there. Because, as I wrote you in a private message, this is a common practice to delete idle connections...

As for Gmail and Gtalk - that's not true. Android uses "push notifications" (actually it is called C2DM on Google, but nevermind). On every Android device you can look at the list of running applications and you will find "Google Services". If you open this one, you will see "Google Messaging Service". This is C2DM. It maintains a constant TCP connection to Google (on port 5228) and this is how your Android device can receive notifications. 

The reason it can affect other applications is that Google provides this C2DM service to other applications. So if you want to write your own Android app that will provide push notifications for something (like Whatsapp, NS Reisplanner etc.), you can develop this functionality all alone OR you can just use Google service C2DM. I am not sure if Whatsapp and NS Reisplanner use Google's C2DM, but if they do, they will be also affected, when Simyo (or any other provider) will delete this TCP connection.

And the last but not least - on your android device you can see the current timeout for keepalive messages on C2DM connection. If you dial the number: *#*#TALK#*#* - you will get some service information about C2DM. For example, you will see "Heartbeat" section with timeout of 28 minutes (something that Google should lower.... hopefully they will one day).

Reageer