我想創建儘可能小的GAE應用程序來顯示通道api的使用。 我在python中有兩個處理程序,第一個「TestPage」發出如下所示的html。第二個「SendPage」嘗試通過通道將消息發送到測試頁面。用於TestPage的代碼是頻道在微不足道的GAE應用程序沒有得到'onmessage'
class TestPage(Handler):
def get(self):
token = channel.create_channel("1")
self.render("test.html", token = token)
它只是與「1」的ID創建信道,並用()從create_channel傳遞迴令牌reders的頁面。
的SendPage就是:
class SendPage(Handler):
def get(self):
channel.send_message("1", "hello")
self.write("sent hello to 1")
的HTML是小我能得到它:
<!DOCTYPE HTML>
<html>
<body>
<br>Token is {{ token }}
<br>
<div id="debug">_</div>
<!--
<script src="https://talkgadget.google.com/talkgadget/channel.js"></script>
-->
<script src="static/channel.js"></script>
<script defer="defer">
function debug(s) {
document.getElementById("debug").innerHTML = s;
}
var channel = new goog.appengine.Channel({{ token }});
var socket = channel.open();
socket.onopen = function(e) {
debug("open");
}
socket.onclose = function(e) {
debug("close");
}
socket.onerror = function(e) {
debug("error");
}
socket.onmessage = function(e) {
debug("message");
}
debug("ready");
</script>
</body>
</html>
所以,內部鍍鉻我拉起來TestPage,我看到「準備就緒」的消息。然後我在另一個選項卡中拉起發送頁面。並看到「發送的消息」。然後,當我回到TestPage時,我希望已經將「準備好」替換爲「消息」。但這從來沒有發生過。沒有任何套接字處理函數被調用。
我被卡住的時刻,將不勝感激任何幫助或建議。
謝謝。
順便說一句,我用dev_appserver.py在我的本地主機上運行這個。頻道api的源代碼位於本地計算機上,並從https://talkgadget.google.com/talkgadget/channel.js複製。請詢問您是否有任何問題。謝謝。 –