FB App Channel文件。 ChannelUrl没有加载?

时间:2012-06-17 21:47:06

标签: facebook-apps channel

我在Facebook上有一个Canvas应用程序,它只显示我们外部网站上托管的页面。工作得很好。

我在Firefox中注意到Firebug中报告了持续加载和错误:

  

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

     

200 Aborted

     

39.86s

这种加载尝试总是需要大约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/,一切都很好。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

Facebook的JS SDK会对事件更新进行长时间轮询。如果没有可用的更新,则连接最终会超时,您将在Firebug中看到Aborted。

答案 1 :(得分:-1)

*从其他位置复制并粘贴

这些请求是HTTP长轮询请求。我只有Facebook网站开放几分钟,我不是真的监控活动,但它看起来像:

  • Facebook正在使用HTTP长轮询,其中打开的连接被标记为“待定”
  • HTTP Long-Poll请求保持打开状态40秒,如果没有活动请求关闭并打开一个新请求,则会持续打开。
  • 如果在40秒内发送响应(服务器到客户端)连接关闭(好吧,这就是HTTP Long-Polling的工作原理)