打開頻道時出現問題。 我這個服務器端:頻道Google App Engine channel.open()不起作用
def get(self):
user = users.get_current_user()
if not user:
self.redirect(users.create_login_url(self.request.uri))
return
channel_id=str(str(random.randint(0,1000)))
token = channel.create_channel(channel_id)
template_values = {
'token': token,
'me': user.user_id()
}
logger.debug("Token: %s user:%s %s %s" % (token,user.user_id(),user.nickname(),user.email()))
self.response.out.write(template.render('templates/index.html', template_values))
,這在HTML(模板/ index.html的)
<html>
<head>
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
</head>
<body>
{{ token }}
<script>alert("a0");
var token = {{ token }};
alert("a1");
var channel = new goog.appengine.Channel(token);
alert("a2");
var socket = channel.open();
alert("a3");
socket.onopen = function(){
alert("open");
};
socket.onmessage = function(m){
var data = $.parseJSON(m.data);
alert(data)
};
socket.onerror = function(err){
alert("Error => "+err.description);
};
socket.onclose = function(){
alert("channel closed");
};
</script>
</body>
</html>
我把警報,看看是否一切正常,但A0 A1 + A2是提出,而A3沒有。 問題在哪裏? 爲什麼channel.open()不起作用?
PS:有沒有什麼辦法可以在javascript中跟蹤這些錯誤?然後猜測錯誤在哪裏更有效。
還有Firebug for Firefox,或者您可以使用Chrome,Opera等內置的Javascript調試器。在大多數瀏覽器中還有一個顯示錯誤的Javascript控制檯。 – 2012-07-19 18:38:26
我也這麼認爲,但我並沒有看到「開放」作爲警覺。所以渠道似乎不會被打開。 我實際上試圖獲取/ _ah/channel/connected/data,但我真的不知道它是如何工作的 – EsseTi 2012-07-19 18:41:23
您是否在使用Google App Engine文檔? – 2012-07-19 18:42:13