|Google Channel API /_ah/channel/connected/ not called while /_ah/channel/disconnected/ is||Marc Hacker||5/24/12 9:28 AM|
Using Google Channel API I find that /_ah/channel/disconnected/ is
always called promptly while /_ah/channel/connected/ is not. Many
times I never get a connect call and then get a disconnect call for a
channel which the server has not been notified about!
(I saw some people had the opposite problem that disconnect is delayed)
|Re: Google Channel API /_ah/channel/connected/ not called while /_ah/channel/disconnected/ is||Aleksei Rovenski||5/24/12 3:22 PM|
I found out that those handlers can not be fully trusted. We are using channel api for few month already and experienced a whole bunch of different problems:
the handlers may not be called or called with huge delays, so that even their order is wrong (the client has long ago refreshed the token and is connected to another channel already and then bang disconnect for the previous one)..
the channel may be connected, but may not receive any messages at all...
We are using many precautions, for example our clients notify server themselves when channel is created and opened, then server tries to send an ack message and
only if it goes through the channel is considered as connected. Same with disconnect, we try to notify server ourselves when users logout or close windows.
So far based on my experience I'm afraid this is the only way to work with channels, I mean expect everything to fail (or can I say this about gae in general? or maybe all highly distributed systems :))...
PS Btw star this issue please - batch send method :)
|Re: Google Channel API /_ah/channel/connected/ not called while /_ah/channel/disconnected/ is||James Mortensen||6/17/14 9:38 AM|
I'm going to bump this thread because this is still an issue, and it would be awesome to hear from Google on how to proceed. When our users reload the app, we're disconnecting the channel and reconnecting the channel, and sometimes /_ah/channel/connected does not get called.
We're reusing the same channelId so that any messages sent while offline still get delivered. Is this not the correct course of action?
There's also a Stack Overflow post from two years ago on this issue: http://stackoverflow.com/q/10741519/552792