Re: [google-appengine] Channel API issues

2012-04-03 Thread Moishe Lettvin
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)

2012-03-19 Thread Moishe
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

2012-03-12 Thread Moishe Lettvin
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

2012-02-23 Thread Moishe
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

2012-02-21 Thread Moishe
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

2012-02-13 Thread Moishe
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!

2012-02-01 Thread Moishe
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...

2012-01-27 Thread Moishe
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

2011-11-09 Thread Moishe
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

2011-11-09 Thread Moishe
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?

2011-10-18 Thread Moishe
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

2011-09-15 Thread Moishe
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

2011-07-29 Thread Moishe
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

2011-07-26 Thread Moishe
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

2011-07-13 Thread Moishe
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.

2011-07-08 Thread Moishe
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?

2011-06-27 Thread Moishe
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.

2011-06-17 Thread Moishe
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.

2011-06-15 Thread Moishe
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.

2011-06-13 Thread Moishe
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.

2011-06-07 Thread Moishe
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.

2011-05-31 Thread Moishe
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

2011-05-18 Thread Moishe
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

2011-05-18 Thread Moishe
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

2011-05-17 Thread Moishe
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

2011-05-02 Thread Moishe
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

2011-04-14 Thread Moishe
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

2011-04-14 Thread Moishe
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

2011-03-22 Thread Moishe
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

2011-03-05 Thread Moishe
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

2011-01-19 Thread Moishe
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.

2011-01-14 Thread Moishe
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

2011-01-13 Thread Moishe
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

2011-01-13 Thread Moishe
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

2011-01-11 Thread Moishe
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

2011-01-11 Thread Moishe
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.

2011-01-11 Thread Moishe
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

2010-12-16 Thread Moishe
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?

2010-12-16 Thread Moishe
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?

2010-12-16 Thread Moishe
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

2010-12-11 Thread Moishe
 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

2010-12-07 Thread Moishe
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?

2010-12-07 Thread Moishe
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

2010-12-04 Thread Moishe
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?

2010-12-04 Thread Moishe
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

2010-08-23 Thread Moishe
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.