問題タブ [channel-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Google App Engine のチャネルと TaskQueues (クライアント デバッグ)
私は最初の GAE アプリケーションをビルドしてデバッグしようとしていますが、Stackoverflowers の素晴らしいサポートの恩恵を受けて、デフォルト キューでタスクを処理することで、現在の状況を把握しています。ありがとう!
ただし、キューを使用して、バックグラウンドで「長い」作業を行う方法を示したかったのです。私の考えは:
- 大きなファイルを処理する要求を受け取ります。
- ファイルを保存し、タスクをキューに入れます。
- 応答を返します。
- バックグラウンドでファイルを処理します。
- チャネルを介して、作業が完了したことをクライアントに知らせます。
私はこれをすべて機能させていますが、1つの問題があります。私の開発サーバーでは、タスク キューがバックグラウンドでタスクを処理していないようです。長時間実行される作業をシミュレートするために、そこにスリープを入れました。
GAE 開発サーバーはシングル スレッドのようです。アイテムがキューから処理されるまで、まったく応答しませんか? この仮定は正しいですか?何か案は?
ありがとう
コード例の追加:
google-app-engine - Google App Engine Channel API と Chrome 拡張機能
クリスマスに、チャネル API を使用して App Engine アプリケーションへのチャネルを開くコードをいくつか実装しましたが、問題なく動作していました。
最近コードに戻って、コードが壊れていることがわかりました。問題は、クライアント コードがフレームにロードしようとしている talkgadget にあるようです。
12 月 21 日に /_ah/channel/jsapi によって返されたコードのスナップショットを撮り、今日のコードと比較しています。
古いバージョンが talkgadget.google.com/talkgadget/d?token=[my-token] を取得しようとしたとき、http を使用するようにハードコーディングされていました。賢明なことに、コードは後で変更され、document.location でページのプロトコルをチェックし、https が使用されている場合に適応するようになりました。現在の問題は、chrome 拡張機能で実行しているときに chrome-extension を取得することです。プロトコルとして、当然のことながら拡張機能でチャネルを開くことができません。
バックグラウンド ページのベースをアプリスポット URL に設定しても、document.location は変更されませんが、そうすべきだという漠然とした考えはありました。(基準が何を言っているのかわかりません。)
これに対する回避策はありますか? 1 つの考えは、自分のサイトから読み込まれる独自の iframe を作成することでしたが、実際のチャネルの iframe がネストされ、事態が複雑になります。
Moishe や App Engine チームの誰かがこれについてコメントしてくれませんか。これはバグのようです。コードは、プロトコルをテストして代わりにベースタグを検索するか、javascript オブジェクトを介してこれを構成する方法を提供することにより、chrome 拡張機能を取り込む必要があります。
google-app-engine - ChannelAPIにポーリングを強制する
うまくいけば、Moisheはこれを理解しています。開発モードでは、チャネルAPIクライアント(javascript)はポーリングに頼ります...そして非常に速いポーリングレートを使用します。周りを突っついた後、私が設定した場合、私はそれを見つけました
ポーリングレートを制御できます。私が疑問に思っているのは:
- クライアントが本番環境で「ポールモード」に移行するかどうか/いつ移行するかを知るにはどうすればよいですか?
- クライアントを強制的に「ポーリングモード」にすることはできますか?
- アプリのチャネル割り当てに達した場合はどうなりますか?/ _ah / channel /エンドポイントは完全に機能しなくなりますか?それともポーリングに頼るのだろうか?
-ありがとうございました
google-app-engine - GAE ChannelAPI Socket.open()が失敗するのはなぜですか?
ウェブサイトでChannelAPIを使用しており、デスクトップおよびモバイルサイト(iPhone / Android)で非常にうまく機能します。ただし、モバイルアプリ(Appcelerator Titanium / jQTouch / WebViewでビルド)のSocket.openコマンドで同じコードがサイレントに失敗します。残念ながら、Titanium/WebViewsでJavaScriptをデバッグすることはできません。これの考えられる原因は何ですか?
JavaScriptクライアントの互換性要件は何ですか?私たちのテストでは、S60V5ブラウザ(Nokia N97 / 5800)では動作しませんでした。
iframeを手動で削除する必要がある「close」コマンドにバグがありましたが、最新リリース(1.4.2)で修正されていますか?
ありがとう。
javascript - Youtube Leanback の実装を理解しようとしている
YouTube リーンバックの新しいアプリケーションでは、Android フォンを使用して、コンピューターのフルスクリーン ブラウザーを制御できます。私は理解しようとしています - それはどのように機能しますか?
たとえば、「再生」を押すと、映画の再生が始まります。再生を押すと、おそらく「HTTP Post」がYouTubeサーバーに送信されます。YouTubeサーバーはどのようにブラウザに「再生」するリクエストをプッシュしますか? プッシュ通知で?おそらくそうではありません。信頼できるサービスではないため、おそらくこのアプリケーションは GAE Channel-API で記述されており、ブラウザとサーバーの間で継続的な通信が行われています...
どんな手掛かり?
javascript - Firefoxでの最初のロード時にチャネルAPIソケットが開かない
AppEngineとチャネルAPIを使用して作成した2人用カードゲームアプリがあります。ほとんどの場合、それはうまく機能しますが、Firefoxで奇妙な問題が発生しています。
Firefoxでゲームに入るとき、socket.openを呼び出しますが、何も起こりません。onopenコールバックを受信することはなく、途中であるはずのメッセージを受信しません。奇妙なことに、ページを更新すると、チャンネルが正しく開きます。これはFirefoxでのみ発生し、他のすべてのブラウザは正常に動作します。また、Firebugを開いている場合、チャネルは正しく開きます。したがって、タイミングの問題である可能性があります。より関連性の高い詳細:
- jsapiを参照するscriptタグは、headタグ内ではなく、body内にあります。
- jqueryの$(document).readyコールバックでsocket.openを呼び出しています。
- エラーコンソールにスクリプトエラーは表示されません。黙って失敗するだけです。
それで、何かアイデアはありますか?修正しない場合は、少なくともChannel APIからログ情報を取得する方法を知っている人はいますか?難読化されたソースでさまざまなログを記録していることがわかりますが、ログメッセージにアクセスする方法を理解できません。
python - TaskQueue からの GAE チャネルの使用
channel.send_messageTaskQueue プロセスが終了したときにクライアントにメッセージを送信するために、GAE で (Python 経由で) APIを使用しようと数日間試みてきました。それはうまくいきません。
別のリクエストから send_message を使用できますが、正常に動作し、受信されます。ただし、TaskQueue から send_message が呼び出された場合は何もありません。
これをローカルで試し、GAE full にデプロイしました。これはサポートされているシナリオではありませんか?
java - メッセージが通過してもGAE/JチャネルAPIの例外?
アプリの初期化中に一連のajax呼び出しを介してチャネルを開きます。
サーブレット:
その後、トークンは次のJavaScriptに返されます。
このエラーが発生します:
警告:/_ah/channel/dev com.google.appengine.api.channel.dev.LocalChannelFailureException:アプリケーションキーnullのチャネルが見つかりません。
チャネル作成の部分は非常に単純なので、どこに問題があるのかわかりません。
System.out.println (channelToken);次のようなものを返します
チャネル--rrmk8i-100002139544068
(100002139544068はチャネルの作成に使用したuidです)ので、実際のトークンを返すようです。また、channelService.sendMessage(msg);(以前と同じuidを使用して)問題なくメッセージを送信します。
なぜこれが起こっているのか誰かが知っていますか?eclipse 3.5.2、GAE / J 1.4.2、ubuntu10.10を使用しています
その例外をグーグルで検索すると、ここで1つのディスカッションしか見つかりませんでした:http: //groups.google.com/group/google-appengine-java/browse_thread/thread/19f250b1ff0e4342
しかし、に変更var channel = new goog.appengine.Channel(token);してvar channel = new goog.appengine.Channel(uid);も何も解決しませんでした(そして、私が理解していることから、それは解決すべきではありません)