問題タブ [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.
google-app-engine - チャネル API: トークンの有効期限が切れると、プレゼンスは切断通知を受け取りますか?
チャネル プレゼンス URL を使用して、接続されたクライアントを追跡するチャネル API でアプリを作成しました。
クライアントが離れると、/_ah/channel/disconnected/ で ping を受信します。フロントエンド クライアントの接続中にトークンの有効期限が切れた場合、ping を受信しますか?
google-app-engine - GoogleAppEngineのチャネルAPIの制限
私はGoogleアプリエンジンを2年ほど使用していて、気に入っています。私はゲームの作成を任されており、GAEをバックエンドとして使用したいと考えていました。私が理解していることから、ChannelsAPIはこの種のアプリケーションを対象としています。tic-tac-toeデモを機能させて、各クライアントが独自のチャネルを持っていることに気づきました。ドキュメントをもう少し詳しく読んだ後、これがシステムの使用方法であることに気付きました。次に、ドキュメントの割り当てと制限を確認しましたが、...壊滅的な打撃を受けました。GAEでは、最大で1分間に60の新しいチャンネルを作成できます。つまり、1分間に60人の新規ユーザーしか持てないということです。これは非常に制限されているため、このAPIを使用できません。
だから私の質問は:
- 私はそれを正しくやっていますか(1クライアント= 1チャネル)
- チャネルAPIは、ゲームの現在の状態について複数のクライアントを更新するために使用するのに最適なAPIです。
- 本当に60だけじゃない!?1分あたりの料金を増やすことはできますか?
google-app-engine - Google App Engine でのチャネル プールの最適な方法
GAE Channel API を経済的に実行可能にする唯一の方法は、何らかのプール メカニズムを実装することです (アプリ エンジンの上級プロダクト マネージャーの 1 人が、私が法外な価格についてメールしたときに、このことを教えてくれました)。期限切れ。
私はチャネル プールを実装する方法 (場所) についてブレインストーミングを行ってきましたが、私が考える各方法にはかなり深刻な欠点があります。
サーブレットの静的メモリ-- 良いですが、新しい VM インスタンスが開いたり、クライアントがある VM から別の VM に渡されたりすると、かなりの数の開いているチャネルが失われます。
Memcache -- 少なくともメモリはすべての VM からグローバルにアクセスできますが、非アクティブとメモリ プレッシャーにより、非常に有効なチャネルが削除される可能性が高くなります。
バックエンド インスタンス-- 信頼性の点ではおそらく最良のオプションですが、バックエンドを実行するための費用が、最初にプールを実装することによる節約をすべて食い尽くしてしまいます!
不足している VM 間でチャネル プールを実装するためのより良い場所/方法はありますか? または、ここでのオプションの欠点に不必要にこだわっていますか? そうしないと、私のアプリはポーリングに戻す必要があるようです (私の暫定的な指標では、これはわずかに安価に見えます)。
java - Google App Engine チャネル API
GAE のチャネル API を (Java を使用して) 学習しようとしていますが、どこから始めればよいかわかりません。
Channel API の概要 (Java)を読みましたが、そこに掲載されているコードは簡潔にするために完全ではありませんでした。
私は初心者なので、完全なサンプルコードが利用できると非常に役に立ちます。
ありがとう、シュリー
google-app-engine - 新しいチャネル作成制限の処理
Google App Engineは最近、チャンネル作成の無料割り当てを1日あたり8640から100に大幅に減らしたようです。有料プランを使いたくない趣味のプロジェクトのために、チャンネル作成を最適化するためのいくつかの提案をいただければ幸いです。
ドキュメントには、チャネルIDごとに1つのクライアントしか存在できないことが具体的に記載されています。1台のコンピューター上の複数のクライアント(複数のタブなど)のみを対象とした場合でも、これを回避する方法があれば役立ちます。
XHRリクエストをサーバーに繰り返し送信して新しいメッセージをチェックし、制限をバイパスすることで、チャネル機能をシミュレートできる可能性があることに気付きました。ただし、この方法は遅すぎるのではないかと心配しています。この原則に基づいて機能する既存のライブラリはありますか?
google-app-engine - GoogleAppEngineを使用した大規模なマルチユーザーリアルタイムアプリケーション
Facebookライブストリームプラグインのように見えるGoogleAppEngine(Python)を使用してマルチユーザーリアルタイムアプリケーションを構築しています: https ://developers.facebook.com/docs/reference/plugins/live-stream/
つまり、同じWebページの1〜1 000 000人のユーザーが、他のすべてのユーザーに即座に通知されるアクションを実行できます。グループチャットのようなものですが、たくさんの人と...
私の質問:
-App Engineはそのような数に拡張できますか?
-はいの場合、どのようにデザインしますか?
-いいえの場合、あなたの提案は何ですか?
現在、これは私の設計です: -App
Engine Channel APIを使用しています
-接続されているすべてのユーザーをmemcacheに保存します-
アクションが実行されるたびに、通知タスクがタスクキューに追加されます
-タスクはすべてのユーザーを取得することで構成されますmemcacheから通知を送信します。
私のボトルネックが課題にあることを私は知っています。全員が同じタスク/リクエストを通じて通知されます。現在、30人のユーザーが接続している場合、約1秒続くため、10万人のユーザーの場合、どれくらいの時間がかかるか想像できます。
これをどのように修正しますか?
どうもありがとう
google-app-engine - AppEngine チャネル API に相当する Amazon EC2 は何ですか?
もしあれば。私はe。大まかに似ているものがある場合は、制限と違いを特徴付けていただければ幸いです。
google-app-engine - AppEngine Channel API でメッセージの欠落を防ぐ
AppEngine チャネル API では、チャネルは 2 時間後に自動的に閉じます。onError イベントでチャネルに再度参加することで、これを処理しています。
チャネルの再接続中にメッセージが送信された場合、メッセージが失われる可能性はありますか?
私たちのシナリオ: 私たちは、API を介して他の場所で予定を予約する予定スケジューリング システムを持っています。チャネルを使用して、新しい予定が到着したときにスケジュールに表示します。しかし、チャネルが閉じられて再接続されている間に予約された場合、一部の予約が失われる可能性があることが懸念されます. Channel API はこれを防ぎますか?
google-app-engine - App Engine チャネルのデプロイ
~50 ユーザーのアプリケーションを作成しました。チャネル API を使用しようとしていますが、メッセージ送信のテスト中に問題が発生しました。トークンをデータベースに保存しているので、ユーザーが同じインターフェイスで複数のタブを開いた場合に同じトークンを使用でき、有効期限が切れたときにトークンをリセットするサーブレットがあります。
アプリケーションを再デプロイするか、アプリのバージョンを変更するまで、問題なく動作します。メッセージの受信を停止します。古いアプリ バージョンのトークンを使用してチャネルを開こうとすると、エラーなどはスローされず、チャネルは開きますが、そのチャネルでメッセージを受信しません。
トークンをリセットすると、再び正常に動作します。
このバグの解決策を知っている人はいますか? 人々が働いている間に頻繁に展開するので、無視することはできません。
私の最善の推測はChannelServiceFactory.getChannelService()
、別のインスタンスを返すChannelService
ので、呼び出すchannelService.sendMessage("id","message");
と別のチャネルに送信されるということです。
java - GAE を介したクライアント通信
GAE を介した Android アプリ (ネイティブ アプリ) とデスクトップ アプリ (C#/Java クライアント) 間の通信に最適な方法は何ですか? 私が見つけた 1 つの方法は Channel API でした。残念ながら、Javascript 以外に Channel API をサポートするクライアント側スクリプトは見つかりませんでした。もう 1 つの方法は、静的クラスを作成し、これらの静的変数を介して通信することでした。
これは私が達成したいことです:
- Android アプリから GAE にメッセージを送信する必要があります。
- このメッセージは PC アプリ (C#/Java クライアント) で取得する必要があります。
- PC アプリはこのメッセージに対して応答を返す必要があります
- PC 応答はモバイル アプリに送信する必要があります。
実際、モバイルからWindowsコマンドプロンプトでコマンドを実行しようとしています。