Hi, I have to agree with Pascal. Channel API has too many issues and though I have worked around most of them to a certain degree when it started to be good enough, I would not repeat this if I would be still planning my application. Some more issues that I can easily add to the list above:
- doesn't support batch sending (if you want to broadcast same message) Note that the cost you see in the dashboard for Channel API is not the full cost. You also have to consider that your instances will spend some time sending the messages. Usually the API call to send a message takes 20-40 millis, but on occasions it can take a couple of seconds. And if you are broadcasting your instances may end up spending most of the time doing sendMessage calls.. There is an issue for that, please star it: http://code.google.com/p/googleappengine/issues/detail?id=4506 - 400 SID errors Usually it doesn't happen too often, but sometimes you will get them right after your client connected and then again... There is an issue for that, feel free to star it: http://code.google.com/p/googleappengine/issues/detail?id=4940 - Sometimes channels are just dead You create a channel, there are no errors or anything, but no matter how many messages you send, it just won't receive any. The token is still valid, so your client can try to reconnect, but it won't help, it has to create a new channel with a new token. But how to detect this kind of issue until it is too late and user has left your app for good? The problem is sometimes channel takes 20+ seconds before it receives messages.. - Quota of 60 connects per minute (1 per sec) If I succeed, it won't be enough for my app. I have no idea how responsive is google in increasing the quota.. +1 for presence notifications are extremely unreliable To a degree that I had to duplicate them, my app sends its own callbacks. What is unreliable you may ask? Disconnect notification for example may come *minutes* after. So my client already handled the situation and connected to another channel long ago. If I would have waited for presence notification, I would have lost the user. Or even worse on some days the notification may not come at all. And because you can never be totally sure that you have not missed something or channel doesn't give you a new trick, I had to add shamefull lazy polling to make sure my users are still connected :( PS. I'm trying out Pusher and it looks good. PSS. I still like Appengine, but Channel API is really not ready for production apps. суббота, 1 сентября 2012 г., 7:32:56 UTC+3 пользователь Kristopher Giesing написал: > > > > On Friday, August 31, 2012 12:29:20 PM UTC-7, Pascal Patry wrote: >> >> Hi, >> >> Channels on AppEngine are picky. There are multiple issues that I had to >> work around for an application that is currently in production: >> 1. Channels aren't working on backends >> > > Argh, seriously? That is a huge problem for me :( > > >> 2. No API is available to mobile >> > > I worked around this by embedding the jsapi code in my application. It > seems to work fine... so far. > > >> 3. The implementation is different from the test and production server >> > > Yes, that is a pain. I had to add a wrapper class to my application to > choose between embedded test and prod implementations dynamically. > > >> 4. Connection/Disconnection handlers aren't reliably called >> > > Are you talking about this? If so it was fixed: > http://code.google.com/p/googleappengine/issues/detail?id=7098 > > The fix isn't public yet but there's a patch in the thread. > > - Kris > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/YPNuW4F8A0kJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.