問題タブ [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.

0 投票する
2 に答える
656 参照

html - HTML5 ゲーム、ユーザーの動きの概念

HTML5 キャンバスと Google App Engine の Channel API の学習を始めたばかりです。

アイソメ マップに基づいて簡単なゲーム デモを作成します。今はキャラクターの動きを実装したいのですが、どのように実装すればよいか悩んでいます。

現在のデモ: http://cheukalex.appspot.com

これは私がそれが実装されると思う方法です:

クライアントは移動を処理します。矢印キーを押すと、クライアントが移動を実行し、新しい調整をサーバーに送信します。これは、サーバー上の他のユーザーにブロードキャストされ、キャラクターの位置が更新されます。

私が考えた問題:

  1. 「移動速度」を実装したい場合はどうすればよいでしょうか。たとえば、ユーザーが 5 マス歩く速度などです。各動きの間の遅延は、クライアント側で行われます。しかし、それは安全でしょうか?JavaScriptは簡単に編集できるからです。

  2. レイテンシーに対処するにはどうすればよいですか? 単純な追跡タグ ゲームを作成した場合、ユーザーを同期して、あるユーザーが別のユーザーに「タグ付け」しているように見えても、別のユーザーが 1 ~ 2 スクエア後ろにいるのを見ないようにするにはどうすればよいでしょうか?


編集: @nycynik、その通りです。レイテンシは約 200 ミリ秒です。ここでテストしました。

レイテンシ テスト: http://cheukalex.appspot.com/latency

これは、これまでにない最小のレイテンシです。200ミリ秒はかなり速いです。それでは、私のコードが遅いのでしょうか?

ゲーム全体を実装する方法は次のとおりです。

  1. クライアントがウェブサイトに入る
  2. サーバーはトークンを作成し、チャネルを開き、クライアント データ ( channel id ) を DB に保存します
  3. ....いくつかのロジック
  4. クライアントが矢印キーを押すと、どのクライアントがどの方向に移動したかをサーバーに通知します
  5. サーバーは動きを受け取り、ロジックを実行し、データベースをループし(現在オンラインのクライアントのみ)、すべてのクライアントにメッセージをブロードキャストし、json でマップ上のすべてのクライアントの位置を示します。その後、クライアントは「移動」します。

これで何か問題がありますか?

0 投票する
2 に答える
405 参照

python - GAE Channel API は安全ですか? そして、基礎となる実装は何ですか?

GAE + Python を使用して、機密データのリアルタイム更新をクライアントに送信する必要があるアプリケーションを作成しています。App Engine Channel APIが安全かどうかを知りたいと思っていました。HTTPS を使用するだけで十分ですか、それともチャネルに独自のセキュリティ プロトコルが必要ですか?

また、App Engine Channel APIの基本的な実装は何ですか? ウェブソケット、SSE? 実際には、チャネルを介してサーバーからクライアントへの一方向通信のみを提供し、クライアントに標準の HTTP 要求を使用してサーバーと通信させるようです。

0 投票する
1 に答える
283 参照

android - App Engine API Android クライアント

アプリで appengine チャネル API を使用するための Android 用のクライアント バージョンを探しています。他の人が開発されたのを見たことがありますが、安定しているようには見えません。JavaScriptなどにWebビューを使用する必要がある人もいます。私はそのようなことはしたくありません。

それに関するリソース、または私が使用できる賢明なアプローチはありますか?

ちなみに私はpythonでappengineを使っています。

0 投票する
1 に答える
353 参照

google-app-engine - ユーザーがページをリロードしたときにチャネル プレゼンス URL が呼び出されない

私はSDK 1.6.5、Python 2.5を使用しています

開発サーバーを起動して 127.0.0.1 のチャネル テスト ページにアクセスすると、すべて正常に動作します。トークンが生成されてフロント エンドに渡され、ソケットが開き、クライアント接続の ping が受信され、アプリがクライアントにメッセージを送信し、受信されます。 .

ページをリロードすると:
- ログに切断 ping が表示されない (そうあるべきか?)
- 新しいトークンが生成される (OK)
- フロントエンド js が、新しいトークンで開かれたソケットをログに記録する (OK)
- クライアント接続の ping が受信されない
- . ..サーバー側のコードは、このソケットが開いていることを認識せず、クライアントにメッセージを送信する方法を知りません

ここで適切な流れを誤解していますか?

ページをシフト+リロードしても同じです。すべてを再び機能させるには、開発サーバーを再起動する必要があります。

djangoappengine の使用:

0 投票する
2 に答える
821 参照

javascript - App Engine Channel API でコンソール ロギングをオフにするにはどうすればよいですか?

永続性を備えた Channel API を実装しました。チャネルを作成してソケットを接続すると (これはローカルの dev_appserver ではなく、実際のアプリ上にあります)、Firebug はログ メッセージで異常になります。自分のログを表示できるようにこれらをオフにしたいのですが、チャネル API コンソールのログを無効にする方法に関するドキュメントが見つかりません。

私がおそらく他の人とは違うことをしているのは、クロスドメインに接続していることです...チャネルAPIがサポートしています(ストリームの最初のメッセージに注意してください...その写真を見ることができれば)

ここに画像の説明を入力

誰か知っていますか?


アップデート

私のコードが 2 つのチャネルを作成し、両方を同時に開いたり接続したりしようとしていることに最終的に気付きまし。私はこれを行うつもりはありませんでした (私はルールを知っています: https://developers.google.com/appengine/docs/python/channel/overview#Caveats )...それはバグでした...そして私が修正したらメッセージは管理可能なレベルに戻りました。

わーい

0 投票する
0 に答える
464 参照

google-app-engine - Google Channel API /_ah/channel/connected/ は呼び出されませんが、/_ah/channel/disconnected/ は

Google Channel API を使用すると、/_ah/channel/connected/ は呼び出されませんが、/_ah/channel/disconnected/ は常にすぐに呼び出されることがわかりました。サーバーに通知されていないチャネルの接続呼び出しを一度も受信せず、切断呼び出しを取得することが何度もありました。

(切断が遅れるという逆の問題を抱えている人もいました)

0 投票する
2 に答える
505 参照

java - dev で appengine ChannelFailureException がスローされない

AppEngine は、チャネルにメッセージを送信する際にエラーが発生した場合 (チャネルが接続されていない場合など) に ChannelFailureException をスローすることになっています。

開発サーバーはこの例外をスローしないようです。コンソールに警告が表示されます。

この警告は、com.google.appengine.api.channel.dev.LocalChannelFailureException によって生成されるようです。

ただし、実際の例外 (つまりcom.google.appengine.api.channel.ChannelFailureException ) はスローされません。開発中にこの例外をテストする方法を知っている人はいますか?

0 投票する
2 に答える
97 参照

google-app-engine - symbian やその他のモバイル OS のアプリ エンジン Channel API?

チャネル API は symbian で動作しますか? 何のブラウザ?それを機能させる方法はありますか?
また、好奇心のために、それが機能しない場合、なぜですか? 古い携帯電話での動作を妨げる要素または技術は何ですか (Android と iOS については話していません)?

0 投票する
1 に答える
612 参照

javascript - ChannelAPIを使用して別のドメインからAppEngineに接続することは可能ですか?

自分のサイトからAppEngineのバックエンドへのチャネルを使用したクロスドメイン通信が必要です。これは可能ですか?もしそうなら、どのように?JavascriptAPIにドメインパラメータがないため

0 投票する
3 に答える
865 参照

java - onmessage Google App Engine (Java) チャネル API

Google App Engine の Channel API を使用しようとしています。

JavaScript / JQuery:

問題は、アラート (メッセージ) が発火しないことです。私のコードで幸運とは何ですか?

"\\{\\{ token \\}\\}"サーバー側とchannel = new goog.appengine.Channel('{{ token }}')javascriptにあるいくつかの例で混乱しています。

それは何に囲まれてい{{ }}ますか?