1

外部サイトでホストされているページを表示するだけの Facebook キャンバス アプリがあります。正常に動作しています。

Firefox で気付いたのは、Firebug で継続的な読み込みとエラーが報告されていることです。

GET http://0-68.channel.facebook.com/pull?channel=p_...1&partition=1&clientid=3744ab1f&cb=b3di&idle=287

200 中止

39.86秒

この読み込みの試行には常に約 40 秒かかり、失敗するとすぐに再試行されます。また、上記の URL を単独でロードしようとしましたが、これは「接続リセット」メッセージでタイムアウトします。

これは、SDK セットアップの channelUrl ディレクティブと関係がありますか? 私は次のようにこの設定をしています:

var channel_url         = "http://mysite.com/facebook/channel/"; // Aside from the domain, this is the actual final url.
var app_id              = "blahblahblah";


// Initialize the facebook object
FB.init({
    appId: app_id, // From the globals set up at the top of this page
    channelUrl : channel_url, 
    cookie: true,
    xfbml: true,
    oauth: true
});

チャンネルファイルにはこれだけが含まれています:

<script src="//connect.facebook.net/en_US/all.js"></script>

しかし、jsの非同期ロードも試しました。

http://mysite.com/facebook/channel/をブラウザーにロードすると、すべて問題ありません。

何かご意見は?

4

2 に答える 2

1

Facebook の JS SDK は、イベントの更新に対してロング ポーリングを行います。利用可能な更新がない場合、接続は最終的にタイムアウトになり、Firebug で Aborted と表示されます。

于 2012-06-18T09:18:26.360 に答える
-1

※別の場所からコピー&ペースト

これらのリクエストは、HTTP ロング ポーリング リクエストです。私はFacebookサイトを数分間開いただけで、実際に活動を監視していませんが、次のように見えます:

  • Facebook は、開いている接続が「保留中」としてマークされる HTTP ロング ポーリングを使用しています。
  • HTTP ロング ポール リクエストは 40 秒間開いたままになり、その後、アクティビティがない場合、リクエストは閉じられ、新しいリクエストが開きます。
  • 40 秒以内に (サーバーからクライアントへ) 応答が送信された場合、接続は閉じられます (これが HTTP ロングポーリングの仕組みです)。
于 2014-06-03T05:07:01.617 に答える