调试通道API Appengine

时间:2016-02-11 19:13:07

标签: javascript google-app-engine channel-api

我正在使用appengine通道api(带有延期任务),但它似乎没有用。

这是我的服务器代码:

Class Handler(webapp2.RequestHandler):
  def get(self):
    path = jinja_environment.get_template('templates/new_console.html')
    token = channel.create_channel('some_key')
    # Deferring the task.
    deferred.defer(_task, token)
    args = {}
    args['token'] = token
    self.response.out.write(path.render(args))



def _task(token):
  FeedbackThreadModel(id='id').put()
  time.sleep(60)
  channel.send_message(token, 'done')

这是我的javascript客户端

<html>
  <head>
    <script type="text/javascript" src="/_ah/channel/jsapi"></script>
    <script>
        channel = new goog.appengine.Channel('{{ token }}');
        socket = channel.open();
        socket.onmessage = onMessage;
        onMessage = function() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', '/secondpage');
            xhr.send();
        };
      </script>
  </head>

我希望GET请求在任务完成后启动到URL:'/ secondpage',但是没有发生。我做错了什么?

1 个答案:

答案 0 :(得分:0)

现在看起来似乎有效。显然,套接字请求javascript应该在html体内,而不是在头部。工作javascript看起来像这样:

{{1}}