2010-12-05 11 views
7

公式のドキュメントにはサポートは記載されていませんが、チャンネルAPIを使用するためにjavascriptの代わりにクライアントプログラムを接続することが可能かどうかは疑問です。私は現在、Windows APIの基本的なポーリング手法を使用しており、Channel APIを使用すると応答性が向上し、負荷がかなり軽減されます。CでのGoogle Channel APIの使用#

私は醜いハックとして、私はバックグラウンドで隠れたウェブブラウザーオブジェクトをレンダリングし、その中でjavascriptを実行してからそれをフィードバックすることができます。より良い解決策はありますか?

答えて

10

チャンネルAPIはGoogleサーバー間でのみXMPPを話すため、XMPPを使用すると動作しません.XMPPトラフィックはブラウザに公開されません(FirebugまたはChromeデベロッパーウィンドウを使用して内容を確認できます) 「バインド」リクエストのうちJSONが送信されていることがわかります)。

あなたが言ったように、実行可能な唯一の解決策は、アプリでチャンネルに接続するのに十分なjavascriptを実行するブラウザコントロールをラップし、メッセージを受け取ったときにC#アプリに信号を送ることです。不器用ですが、実行可能です。

リバースエンジニアリングしてiframeの動作をシミュレートし、JSONメッセージを直接消費することもできますが、実装の詳細が変わるとアプリが無数に破壊される可能性があります。

これはすべて、ネイティブのC#ライブラリが好きな人の数と、それを使って書きたいアプリケーションの種類が不思議です。 WP7アプリ? Windowsクライアントアプリ?サーバーアプリ?私はここでApp Engineのための機能要求を作成しました:

http://code.google.com/p/googleappengine/issues/detail?id=4206

をもし興味があるなら、それをupvoteしてください、そしてあなたが名前を付けることができます詳細/魅力的なユースケース、より良いです。

ありがとうございます!

+0

私はできればあなたをアップヴォーグしますが、私の5つの評判のポイントは私には許されません。しかし、私はapp'in問題トラッカーの問題を金star'dしました。 – savagepanda

+0

@Moshie、Channel APIとは対照的にXMPPを直接使用することを提案していました。 **一般** APIがChannel APIと相互作用することを知ることに興味があります。そうすれば、他の言語のネイティブライブラリを持つこともできます。これについての議論は、ずいぶん前のグループで行われました。 –

+0

非常に良い点:Channel APIを完全にスキップし、XMPPを直接使用することができます。XMPPサービスにユーザーをサインインし、その名簿にボットを追加する(または、ボットを追加することなくメッセージを受け取るエンドポイントを持つ)必要があります。些細な量ではありませんが、間違いなく可能です。 –

3

可能であれば、XMPPを直接使用すると考えられます。 C#にはseveralがあります。

FireFox + FireBugのコピーを入手したい場合があります。次に、FireBugの 'net'タブを見て、誰かと遊んでいる間にdemo app(またはあなた自身で作る)。あなたは、要求をフォローしてから、C#コードでエミュレートすることができます。

明確化: 私はチャンネルAPIになく、クライアントアプリケーションとあなたのApp Engineアプリケーション間の通信のために話をするXMPPを使用することを示唆しておりません。 FireBugを使用することを推奨しました。なぜなら、トラフィック JSONであることが非常に明確になるからです。

+0

モイシェが言ったことを確認して、それが、xmppではなく、Jsonとして戻ってきているように見える。 – savagepanda

+0

私はChannel APIの代わりにXMPPを使うことを提案していました。オプションのXMPPを直接使用している場合、障害ポイントの追加のレイヤー(チャネルAPI)が削除されます。 –

関連する問題