Re: [google-appengine] Channel API issues
Are you still having trouble retrieving messages? The problem with presence has been fixed since about 2am this morning, but I haven't heard any other reports of dropped messages, and I'm not able to reproduce that. On Mon, Apr 2, 2012 at 8:08 AM, Aleksei Rovenski aleksei.roven...@gmail.com wrote: Hi all, This is critical and started to happen 2-3 hours ago. First of all connected presence is not coming anymore (disconnected comes). This broke a flow in our application (yagoloo-chat). We added a tmp workaround to exclude connected presence handler from app flow, but only to find out that messages are now not reaching clients. So client creates the channel and notifies the server that it is ready to receive messages, server sends message, but client never gets it. Maybe one out of 20 is getting the message. This is really critical as our application is a chat app. Please help, cheers, Aleksei -- 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/-/4PMdsL9OPJIJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: sending mail from n...@myapp.appspotmail.com fails after migrating to myapp-hrd (alias doesn't work for appspotmail.com)
Please fill out this spreadsheet and we'll up the mail quota for your app: https://docs.google.com/a/google.com/spreadsheet/viewform?formkey=dENESzEwNzJiZEdpQkRzTl9RNElVWUE6MQ#gid=0 On Monday, March 19, 2012 2:14:13 PM UTC-6, PK wrote: +1 I never got an answer on this one and would like to know too. Please star http://code.google.com/p/googleappengine/issues/detail?id=6243 PK -- 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/-/TJ1ReyIJfNQJ. 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.
[google-appengine] Re: Re: Messages not delivered using Mail API
Can you tell me your appids? I can take a look. On Mon Mar 12 03:03:59 GMT-700 2012, Alexis alexis.hanico...@gmail.com wrote: Similar issue for us, for one of our apps it works fine, for one other, our test and stage apps works correctly but once in production mails are not delivered, or only a fraction of them. No errors, logging says it worked. Is there some throttling applied? The main difference with our production app is that it sends many more emails, about 17k per day. The other production app on which it's working sends between 5k and 6k per day. Our mails are signed using the new feature (DKIM for Google Apps sender), same sender between our different stage apps. -- 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/-/nZ0SE_hm9IEJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Mail API deliverability issues
Hi All, Some apps have experienced delivery problems with mail recently. This was manifested as mail being sent from the app, and quota charged, but the mail not arriving at the destination (not even in the spam folder). As you can imagine, any large service that lets applications send bulk email is something of a honeypot for spammers. We’re working constantly to balance delivering good mail from good apps against preventing spam. In response to an influx of spammy apps, we changed our outbound spam filtering to be more restrictive which, unfortunately, raised our false positive rate. We’ve modified this change and made some others so existing apps should be back to previous levels of email deliverability. DKIM support is in 1.6.3, which will improve spam evaluation considerably, and there are some good hints here about preventing your legitimate messages from being marked as spam: http://support.google.com/mail/bin/answer.py?hl=enanswer=81126. We’re planning on adding some sort of feedback mechanism so your app will know when its mail is being rejected, rather than just silently failing. There is no definite release date planned for this. If you are still having problems with mail deliverability, or you have other questions, please contact us at http://goo.gl/ldsGA Thanks- -Moishe Lettvin Mail API Tech Lead -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: 1.6.3 Prerelease SDK Available
On Feb 21, 12:30 pm, Joshua Smith joshuaesm...@charter.net wrote: The case that matters is when the server is sending an administrative email, and we'd like the headers there to reduce the probability of those emails being tagged as spam. In most cases, nobody at all will be signed in. These emails might be coming from a cron, or they might be happening as part of a registration process. Sorry for the confusion; that case is also supported. As long as the administrator's domain is a Google Apps domain and the domain's been set up with a DKIM key, the mail will be signed. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Mail quota Problem
We made a change recently so that applications do not receive unlimited recipient quota until they have successfully cleared a charge (previously unlimited quota was granted when billing was enabled). So if your app is in the approximately 7-day window between enabling billing and clearing a charge, this is expected behavior. If your app has successfully cleared a charge, can you tell me the appid? (you can email me directly) On Feb 11, 6:35 am, partnerke...@hotmail.com partnerke...@hotmail.com wrote: Hello Recipients Emailed %100 fills up quickly. Estimated cost for the last 6 hours:$0.00* / $150.00 active. But it does not send. The problem is what do you think? Thank You -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: App Engine SDK 1.6.2 is out!
Unfortunately the initial release notes were incorrect about measuring the quota. Current metrics are still in place, but developers can change the expiration. Over time we will switch over to removing the 'create' quota and billing and bill/assign quota by minutes only. However minutes will stay as minutes requested rather than minutes consumed for the foreseeable future. -Moishe -- 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/-/PM9Nt8IoBj0J. 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.
Re: [google-appengine] Re: Channel API Quota exception even though dashboard shows only 20% channels created...
This should be resolved now; it was related to the new channel_minutes quota. Please post if you see any more problems with this. -- 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/-/ueZbO0XUDPkJ. 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.
[appengine-java] Re: XMPPService.getPresence
Hi there- According to the XMPP spec, a server may chose not to respond to a presence PROBE if the user is offline (see section 5.1.3 here: http://xmpp.org/rfcs/rfc3921.html). I'm curious about online users not responding to the probe, though. How often does that happen? Can you provide me the JIDs (offline, my email is moishel at google.com) if it's a consistent set of JIDs? Thanks! -Moishe On Nov 8, 12:13 pm, Gerald Tan woefulwab...@gmail.com wrote: According tohttp://code.google.com/appengine/docs/java/javadoc/com/google/appengi... XMPPService.getPresence is deprecated. Fair enough, I can use XMPPService.sendPresence(jid, PresenceType.PROBE, null, null) and handle the response asynchronously with /_ah/xmpp/presence/available/ and /_ah/xmpp/presence/unavailable/ However, I've found that most of my offline users and a couple of my online users are not replying to the presence probe. Is the probe guaranteed to to receive a response presence? Or do I have to manually perform a timeout check and assume that no-response means unavailable? If that's the case I'd rather stick to using the deprecated getPresence() method and hope it doesn't get removed in the future. This is my code: CollectionString users = getUsers(); for (String u : users) xmpp.sendPresence(new JID(u + @gmail.com), PresenceType.PROBE, null, null); I've confirmed that I receive available and unavailable presences from these users when they log in or logout, but they do not respond to presence probes when they are offline. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[google-appengine] Re: Channel API JS partially broken
Do you have any details on what the server response to the script request is for these? A workaround might be directly requesting http[s]:// talkgadget.google.com/talkgadget/channel.js (the request to /_ah/ channel/jsapi redirects to this path) I'll investigate. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: how does the channel api work under the hood?
The Channel API creates a persistent connection between your application and Google servers, allowing your application to send messages to JavaScript clients in real time without the use of polling. The Channel API uses the same mechanism that Gmail chat, Google+ notifications, etc. use to deliver messages to javascript clients. Currently the most widely-available way to do this is by long-polling rather than by websockets. So, the _implementation_ uses long-polling, but that should be opaque to apps -- your app doesn't need to implement all the plumbing to handle any sort of polling. The .js file lives on another server because that server is responsible for the long-polling plumbing; it's mostly a detail to facilitate rollout. Whether or not the .js is blocked is almost irrelevant, since the actual long-poll goes to the same server and if that's blocked nothing will work. There is a feature request on our issue tracker (http://code.google.com/p/googleappengine/issues/detail? id=4764) to move these off of the talkgadget domain. Hope that sheds some light- -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API not working properly
ETA is about 2 hours for complete rollout of fix. -- 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/-/LmmXiuBBFh0J. 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.
[appengine-java] Re: Channel API questions
On Jul 27, 12:51 pm, Ice13ill andrei.fifi...@gmail.com wrote: Even though it is the same channel, when i call the create method (let's say i hit refresh on my browser, and the channel is created at page load) my Channel Api quota for created channels rises... That's correct, because you're charged for creating the token (you get a new token that's good for two hours every time you call create channel). You can cache the token and re-use it until it times out, by eg. storing it in a cookie. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API questions
Answers below: On Jul 26, 10:21 am, Ice13ill andrei.fifi...@gmail.com wrote: 1. I know that after two hours, the given token for creating the channel expires and onClose() and onError() are called. When this happends, does the POST request to the path to disconnect servlet is sent ? (/_ah/channel/disconnected/) Yes, it will. It might not be at exactly the time of expiration but it will be within a couple of minutes. It's possible that if you request a new token and re-open the socket within that gap that the disconnected and then connected calls will be skipped. 2. if i create a channel with the same clientID twice, will that be considered a new channel (given token is different) or will the token be the identical ? (and also the same channel) You will get a new token (every call to create a channel, even with the same client id, will result in a new token -- among other reasons, the token encodes the expiration time, so it will obviously change on every call). The channel will be the same, though; if you have two clients connected with tokens generated from the same client id, they will both receive messages sent to that client id. However no guarantees are made of support of multiple connected clients; if you open a new client, other clients connected via tokens generated with the same client id may be (probably will be) disconnected. 3. What would be the best method for keeping track of a large number of created channels ? (clients IDs for example) I use the datastore with a memcache layer on top in apps I've written. You could have eg. a table of user_ids (from the users API) representing connected users. -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Call to channel.open() fails silently
I took a brief look at your application and noticed an exception gets thrown after registration. If I go directly through the sign-in page things seem to work. Maybe that exception is causing code to stop working so open doesn't get called? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API Disconnect not being hit every time.
Disconnect notifications could arrive up to a few minutes after the browser window's closed -- usually the browser is good at telling us the client's gone, but sometimes it isn't and we have to wait for a lack of heartbeats to tell us the client's gone. On Jul 4, 1:41 am, Amorgos eurigjo...@gmail.com wrote: Hey, I have created servlet which is hooked onto the POSTs for /_ah/channel/ connected/ and /_ah/channel/disconnected/. This is hit most of the time, but it does not get executed every time. Is this expected behaviour? Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API ChannelMessage sending Asynchronous?
Sending Channel messages is asynchronous in that the function's return is not gated on the client receiving the message. Internally, though, the call waits for a response to an RPC so the time to call sendMessage can take on the order of 10s of milliseconds; if you're sending tons of messages it might be worth doing on a task queue. On Jun 25, 7:14 am, Amorgos eurigjo...@gmail.com wrote: Hey, I'm experimenting at the moment with the Channel API and I'm wondering if the ChannelService.sendMessage() call is asynchronous. This is because I am calling it within a servlet so if I need to call ChannelService.sendMessage() on potentially 100 or so channels will this be done asynchronously so the request doesn't take so long? If not, I guess I would have to use a task queue to field off the work there. Is it possible to send from the task queue? Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API (Java) doesn't work locally, but in production mode.
Awesome! I was just about to suggest checking that your .jars were up to date -- glad to hear you got it working!!! On Jun 17, 10:22 am, Zerot Samsa zerotsa...@gmail.com wrote: FINALLY! We were able to fix the problem :) First of all we migrated to 1.5.0 Then we noticed that the exception I mentioned in my last post was caused by some jar files in the target folder, namely: appengine-api-labs appengine-api-stubs appengine-testing So we excluded those jars from being compiled into the target folder (we only need them for local unit testing.) After this steps were made the channel was finally working. Moishe, thanks for your help :) Kind regards, Z On Thu, Jun 16, 2011 at 5:18 PM, Zerot Samsa zerotsa...@gmail.com wrote: Well... i've tried simplyfing the channelId, but that didn't solve the problem So we migrated to version 1.5.0. As a result we now do not get the application key is null... exception, but instead we get another exception when creating the channel: [ERROR] 2011-06-16 15:05:01.426:WARN::/_ah/channel/dev [ERROR] java.lang.ClassCastException: com.google.appengine.tools.development.ApiProxyLocalImpl cannot be cast to com.google.appengine.tools.development.ApiProxyLocal [ERROR] at com.google.appengine.api.channel.dev.LocalChannelServlet.getLocalChannelSer vice(LocalChannelServlet.java:81) [ERROR] at com.google.appengine.api.channel.dev.LocalChannelServlet.doGet(LocalChannel Servlet.java:89) [ERROR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) [ERROR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [ERROR] at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1166) [ERROR] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat ion.java:66) [ERROR] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipel ine.java:118) [ERROR] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1157) [ERROR] at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(He aderVerificationFilter.java:35) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1157) [ERROR] at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi lter.java:58) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1157) [ERROR] at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans actionCleanupFilter.java:43) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1157) [ERROR] at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile Filter.java:122) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1157) [ERROR] at com.google.appengine.tools.development.BackendServersFilter.doFilter(Backen dServersFilter.java:94) [ERROR] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle r.java:1157) [ERROR] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) [ERROR] at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [ERROR] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [ERROR] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [ERROR] at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [ERROR] at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEn gineWebAppContext.java:70) [ERROR] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [ERROR] at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandle r.handle(JettyContainerService.java:351) [ERROR] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [ERROR] at org.mortbay.jetty.Server.handle(Server.java:326) [ERROR] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [ERROR] at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnecti on.java:923) [ERROR] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) [ERROR] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) [ERROR] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [ERROR] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409 ) [ERROR] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:58 2) However running gwt-gae-channel sample project works. One difference we have noticed
[appengine-java] Re: Channel API (Java) doesn't work locally, but in production mode.
First, what version of the SDK are you using? It looks like you're using something before 1.5.0 (based on the text of the error message) -- can you try with 1.5.0? Basically the logic that's happening here is: - the application calls create channel - the dev appserver gins up a token consisting of a random string plus the application-provided client id - the dev appserver adds this token to a hashmap of token - clientid - the dev appserver returns the token Later, when the client connects, this happens: - the client makes a post to /_ah/channel/dev? command=connectchannel={{token}} - the dev appserver intercepts this request and looks up the channel query param in the hashmap of token - clientid What seems to be happening in your case is that the dev appserver can't extract the channel query param based on the application key is null error. All I can think of is that there's something in the token that's preventing the query params from being parsed correctly. As a test, can you try simplifying your client id? (I can't read the whole thing because Groups thinks it's an email address and elides it) -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API (Java) doesn't work locally, but in production mode.
That token looks malformed to me. The dev appserver tokens shouldn't have an @ in them. Is that the value directly returned by ChannelService.createChannel() or is it modified in some way? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API (Java) doesn't work locally, but in production mode.
Are you all using GWT? Any chance you can include some debug logs that include a request to / _ah/channel/dev/.*? And also log the token that's returned from ChannelService.CreateChannel? Thanks- -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Channel API (Java) doesn't work locally, but in production mode.
That exception happens when a javascript page is left running between re-starting the dev appserver. You can get around it by closing the client page when you re-start the dev appserver. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Problem with Channel API
Hi, Matthew - the only thing I can think of before digging into the logs is that your appid + channelkey combo might be too long. If you tell me your appid, I can look at the logs and see if something else is going wrong. Thanks! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Problem with Channel API
Okay, I've repro'd this problem. It looks like this occurs when you have a high-replication datastore app (which all new apps are, by default, now) and are using the non-default version. Working on a fix now; in the meantime, using the default version of your app should work. Thanks- -Moishe On May 18, 9:41 am, Matthew Smalley matthew.smal...@gmail.com wrote: I originally tried it with a hardcoded channel key of thegame but it didn't like it. However the appid is chess-web and the current version that has the attached code is 4-9. Thanks a lot, Moishe! Matthew On 18 May 2011, at 16:52, Moishe mois...@google.com wrote: Hi, Matthew - the only thing I can think of before digging into the logs is that your appid + channelkey combo might be too long. If you tell me your appid, I can look at the logs and see if something else is going wrong. Thanks! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[google-appengine] Re: Channel use/reuse question
Hi there. You've discovered a bug in the dev_appserver; this case should work fine in production and will be fixed in 1.5.1. If you feel like hacking a patch into the dev_appserver code, you can add this below line 244 of google_appengine/google/appengine/api/ channel/channel_service_stub.py (in the 'else' clause of 'if client_id in self._connected_channels' in connect_channel) 244 self._connected_channels.append(client_id) self._channel_messages[client_id] = [] Hope that helps- -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API Adobe AIR
There shouldn't be a need for a locally patched bundle anymore; the patch is being served live in production now. So the AIR problem you're encountering must be something different. I'll try to take a look at it soon; in the meantime could you please file an issue here: http://code.google.com/p/googleappengine/issues/list Also can you can inspect the DOM of the iframe you're embedding and tell me if a hidden iframe pointed at talkgadget.google.com gets created? There are basically two things I can think of happening off the top of my head -- AIR is preventing that iframe from being created, or the cross-frame communication we're using to relay messages from that iframe out to the host is getting broken somehow. Thanks! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API broken in Chrome Extensions
Hi, Ronald. I'm looking into this today, will try to get back to you later on with some more information. Is this only happening with Chrome extensions? Which channel of Chrome are you running - dev, beta or main? Thanks! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API broken in Chrome Extensions
Okay, I've identified and fixed the problem, and am working on getting a fix rolled out to production. No ETA on that yet. In the meantime if you'd like a patched jsapi file that you can serve statically from your own site, contact me directly at moishel at google.com. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: channel.js not returning the correct mime type
There's a fix for this rolling out soon (should be within a week). In the meantime, you can copy the file locally and serve it statically from your app (with the correct mime type). I realize that's not an ideal solution, but it should work. On Mar 21, 8:34 pm, Navraj S. Chohan nlak...@gmail.com wrote: Is there a fix to this or some work around? Any app with the channel API does not work in IE9 because of this issue. -Raj On Fri, Feb 4, 2011 at 4:53 PM, Philip phili...@gmail.com wrote: Google, please comment on this issue. It appears that the mime type being returned forhttp://talkgadget.google.com/talkgadget/channel.js is incorrect. If so, this needs to be fixed on your servers. On Jan 29, 6:19 pm, Philip phili...@gmail.com wrote: Some browsers (including IE 9) are experiencing issues withhttp:// talkgadget.google.com/talkgadget/channel.js. Specifically, here is an error from IE 9 (beta): SEC7112: Script fromhttp:// talkgadget.google.com/talkgadget/channel.js was blocked due to mime type mismatch Google, if you agree that this is an error on your server configuration for this javascript file, please make the necessary fix to the mime type being returned for this (and other) javascript file(s). Here are the headers currently being returned for channel.js: Cache-Control:private, max-age=0 Content-Encoding:gzip Content-Type:text/html; charset=UTF-8 == error in Content- Type? == Date:Sun, 30 Jan 2011 02:09:09 GMT Expires:Sun, 30 Jan 2011 02:09:09 GMT Server:GSE Transfer-Encoding:Identity X-Content-Type-Options:nosniff X-Xss-Protection:1; mode=block Please notice the content-type is currently text/html when it should probably be something like application/javascript. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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. -- Navraj Chohan (Raj)http://cs.ucsb.edu/~nchohanhttp://appscale.cs.ucsb.edu nlak...@gmail.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API encoding problem
Is this just on the dev appserver? There is a known bug that the encoding isn't set properly that'll be fixed in 1.4.3. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API: a suggestion
Right now, yeah, the workaround is to try it in prod. Obviously that's not optimal. We're going to add presence to the Channel API so that your application knows when a client using a channel is connected/ disconnected. Since the dev appserver will need to simulate this, it could mirror production more closely at this point: if the client's not connected, drop the messages; if it is connected, queue them. Timing issues may be different (connecting in dev will be much faster, for instance) but it'll be more consistent conceptually between dev prod. (especially since there'd be no concept of flushing the queue in production) No firm ETA on this yet but it's in the pipeline. In response to Will's question about opening a channel, navigating away, then returning to the page: in production, any messages sent when the client's not connected to receive them will be dropped. -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API inconsistencies and errors.
The error you're getting makes me think that the token you're passing to your new Channel object isn't valid. Can you add debug code and verify that it's the same string the first time you create the Channel Socket as well as the second time? Also: if you're not getting an onclose message when you get the onerror, you could try manually deleting the iframe named wcs-iframe before creating the new channel and opening the socket. (socket.close is NYI in production right now, but the next version that rolls out to prod - in a week or so - will have this fixed so you'll be able to just call socket.close() in this case instead of messing with the DOM directly) Hope that helps! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Channel API functionality breaks in production
I've seen that error (on line 80) when the token that's passed to the goog.appengine.Channel constructor is malformed -- either with extra stuff (eg. a carriage return) or not the value returned by create_channel. The next release of the channel.js, in a couple of weeks, will include more informative error text in the exception that gets thrown here. Looking at your python code, I don't see where you use the return of create_channel in your template - maybe that's the problem? I think if you just add a line like: 'channel_id' : id, to the template_values declaration at line 44 it'll help. On Jan 12, 12:32 pm, Michael Lieberman mlieberma...@gmail.com wrote: Hi, This is my first foray into web application development so I apologize if there's something major I screwed up to begin with. My code works fine using the app engine launcher and the dev_appserver.py test server. However when I deploy the code to appspot I get an error saying that line 80 of _ah/channel/jsapi has an error. If I loadhttp://talkgadget.google.com/talkgadget/channel.jsmanually I get the same error. However I copied the _ah/channel/jsapi file on the dev server and forced my code to use that .js file and then posted it to app spot and it works. The code in question is athttp://code.google.com/p/cloudy-ide/source/browse/main.py -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: opopen not called when recreating a new socket on the Channel JS API
Hi there - there's a known issue where socket.close() doesn't work. A fix for that should make it to production in the next week or so. In the meantime, you can manually delete the iframe named 'wcs-iframe' from your page. Sorry for the inconvenience. -Moishe On Jan 13, 2:58 am, Will Vincent will.consu...@gmail.com wrote: Hi, I have an instance where I want to close the socket on the client and then create a new one with a new token. The first socket opens correctly and onopen is called. socket.close is then called with no problem. When I try to create a new socket (with new token) I can see the calls being correctly being made to the server (I presume) - i.e. connect-add-client called on talkgadget.google.com etc - but the onopen is never called. I am finding it near on impossible to debug through the js. Any help appreciated. Thanks, Will. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[appengine-java] Re: Massive Problems with CPU/Guice Servlet and Channel API
On Jan 10, 1:29 am, Flori floon...@googlemail.com wrote: Hi Moishe, little reminder ;) could you take a look over? Sorry about that, got distracted by the holidays :) Taking a look now... -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Massive Problems with CPU/Guice Servlet and Channel API
Hi Flori - one thing I noticed is that your token has a carriage return embedded in it. I believe this is causing the base64 decoding of the token to fail. Can you strip out the CR and see if your code starts working? Let me know either way. I'll work on getting a more informative exception thrown when this happens. Thanks! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[google-appengine] Re: Channel API inconsistencies and errors.
Hi there - For number 1, it is likely that the channel hasn't been fully opened on the client when you send the first message. You can make a POST in the onopen handler back to your app to indicate that the channel is fully open. (I am working on a better presence model for this where your app will be able to register a handler to indicate that the channel is fully open, without needing to write custom client code) I'll see if I can repro number 2; I haven't heard this before. If you try to manually re-open with the same token, does that work? Thanks! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Using closure with channel API
Publishing the uncompiled files is in the works! I know it'll be useful for those of you using closure (it could save a lot of code size). No definite time line but I'm working on it now. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Disconnect notification via Channel API?
Yep, connect/disconnect is in the works. No firm ETA, but it's coming. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: [Channel API] How do I know the token expired or not in server side?
I think this was also asked/answered over in the python group, but I'll post here too for the sake of completeness: 1. Token expires two hours from when you call create_channel. So if you wanted to store it server side, you could also store a time stamp. Note that the expiration's accuracy is on the order of seconds, not clock cycles, so don't worry about trying to get an exact timestamp match. 2. Notification of client connect/disconnect is in the works, but not available right now. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Channel API CPU usage
Assuming that a channel setup costs 2.77 seconds, having just 10,000 active users setup 4 channels per day would cost $92.30 per month. That's not counting any CPU costs for actually sending messages. At that rate, I can't really use the channel API as much as I'd like and I have to look at alternatives such as Beacon now that I know how cool this technology is. Better docs on Channel API quota use are coming, but the reason the CPU charge is so high is that the CreateChannel charges up-front for 2 hours of connect time by clients. It is true that if you have the same user connecting repeatedly for a short time but spread out over periods of time longer than two hours (obviously degenerate case would be connecting for a couple of minutes every two hours and one second), the charge will be high. One thing I'm looking at is the ability to create a token that expires after an application-specified period, if your application's usage patterns warrant it. Note that you can store the token for re-use in eg. a cookie so you don't need to regenerate it more frequently than every two hours. Sending a message doesn't charge any CPU time at all (since the connection's already established), just outbound bandwidth. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Channel API: a suggestion
Hi, Will - thanks for the feedback. This is an artifact of how the dev appserver works (because of polling, we need to queue messages), but the Channel API doesn't behave this way in production. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Channel API - what after 2 hours?
Hi Rafael - thanks for the question. onerror onclose will be called when the token times out. At this point you can use XHR to request a new token and create a new channel. You're right that it would be nice to be able to simulate this for testing -- feel free to file a feature request. -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Channel API quota
On Dec 4, 8:22 am, Austin aus...@gmail.com wrote: You could reuse a token for a particular user within the token's two hour window. Yes, I was going to suggest something like this. You can store the token and the time it was created in a cookie, and re-use the token if it hasn't expired. If you can be confident that a user has closed a tab, you could reuse the token from that tab for the duration of that token's 2 hour window. Note that if you're worried about the user having more than one window/ tab open, re-using tokens or not won't make any difference: a channel isn't keyed by token, it's keyed by the client id that you create the token with. So if you have multiple tabs open with multiple tokens created with the same client id, only one (maybe 2, since we allow some redundancy, typically for the page-refresh case) will actually receive messages. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Reliability of Channel API messages?
Latency should be generally significantly less than 500ms (that's not a guarantee, but it's what I've been seeing in my end-to-end tests). Channel set-up time (the time between when you call goog.appengine.Channel.open and when your socket.onopen callback gets called) can be longer, sometimes up to 10 seconds or so. There are no reliability guarantees -- messages can be dropped or delivered out of order, but that should be the exceptional case rather than a normal case. If you have an application which _requires_ all messages to be delivered (eg. you're sending deltas to some complex data structure) you will need to add sequence numbers and checks yourself (though please feel free to file a feature request about this if you'd like). -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.
[google-appengine] Re: Channel API questions
These are great questions. Connection info for channels (re: your first question) probably won't make the cut for the first release of the API, but it is something I want to do. Especially after writing the trivia quiz and having to do the bookkeeping manually. One thing to note is that channels will timeout after some amount of time (currently they're set at two hours) so the model in trivia quiz will actually map to reality. But I hear you that it's less than ideal. The second and third questions is also excellent. We don't have definite plans to support a broadcast model for channels: we'll limit concurrent connection per channel to something in the single digits, primarily to support the case where a user refreshes their browser or something. It is something I would like to do in the longer-term but there are no definite plans around this. However, in the nearer term (but not for the initial release) I do have plans to provide a 'send' method which takes a (potentially quite large) collection of channel keys to send a message to. So the app would need to keep track of which clients are interested in a particular topic (clients a, b, c, d, e, etc care about 'cheese') but then we'll be able to scale these fan-out scenarios better under the hood and you won't need to make a ton of API requests to send the same message to a bunch of clients. Finally, your third question: you've probably figured this out from above, but the architecture right now encourages/enforces one channel per client and one client per channel. We'll only allow one channel creation per page and if you want to multiplex you'll need to handle that yourself (by sending the right set of messages over the one channel connection). Since we're not supporting broadcast, I think this fits the model; if there are scenarios that you think need this kind of multiplexing though please let me know. Thanks for your questions! -Moishe -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@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.