GAEチャンネルAPIをローカルコンピューターで動作させることはできません
-
14-10-2019 - |
質問
GAEチャネルAPIの仕組みをテストするための小さなアプリケーションを作成しています。ドキュメントで説明されているようにすべてを行ったと思いますが、起動すると、最初の構文に関するFirefoxエラーログにエラーが表示され、その後、要素が見つからなかった別の繰り返しエラーが表示されます。これが最初のエラー情報です:
Source: http://127.0.0.1:8080/_ah/channel/dev?command=connect&channel=channel-773698929-185804764220139124118
Line 1, symbol 1
JavaScriptコードが繰り返し接続しようとするURLは次のとおりです。
http://127.0.0.1:8080/_ah/channel/dev?command=poll&channel=channel-2071442473-185804764220139124118&client=1
jqueryでJSONリクエストを通してトークンを取得します $.get
. 。次に、このコードを実行してトークンを取得してチャンネルを開きます。エラーは、実行時に表示され始めます socket = channel.open(handler)
:
var response = JSON.parse(data);
var token = response.token.toString();
channel = new goog.appengine.Channel(token);
var handler = {
'onopen': onOpened,
'onmessage': onMessage,
'onerror': function() {
},
'onclose': function() {
}
};
socket = channel.open(handler);
これがPythonのサーバーサイドコードです。チャネルを開きます。
class OpenChannel(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
token = channel.create_channel(user.user_id())
serialized = json.dumps({'token': token})
self.response.headers['Content-Type'] = "application/json"
self.response.out.write(serialized)
私のエラーは何ですか、そして私は何ができますか?ありがとう!
解決
Channel APIは、GAEホスティングとは異なる方法でLocalHostで動作するようです。クラウドにアップロードしましたが、今はうまく機能しています。ローカルコンピューターでは正常に動作しているように見えますが、エラーログで永続的なJSエラーが繰り返されることを示しています。
他のヒント
ハンドラー引数を削除し、ソケットオブジェクトのメソッドとしてハンドラーを追加してみてください。 socket.onopen = function() {};
など。それは私のために働いていました。しかし、あなたは正しいです。によると これ, 、ハンドラー引数を使用して、これを機能させることができるはずです。うーん。
所属していません StackOverflow