1

我目前正在编写一个使用图形 API 集成 facebook 的桌面应用程序。我想实现实时更新(http://developers.facebook.com/docs/api/realtime/),但在文档中说您必须建立一个 http 服务器,facebook 将处理该服务器以发送更新到。我现在的问题是我的盒子位于只有一个 IP 地址的路由器后面(因此路由器使用 NAT)。facebook 是否仍然可以联系我的网络服务器向我发送更新?

4

4 回答 4

2

@kohlehydrat:每个网络服务器都需要有一个可以从互联网上“任何地方”访问的 IP 地址。由于您的网络服务器位于只有一个 IP 的 NAT 后面,我严重怀疑 Facebook 能否访问您的网络服务器。

但是,看看您是否可以配置 NAT,以便为您的应用程序保留一个专用端口。

例如:

        10.122.48.222:4231 
traffic to port 4231 is directed towards your application. 
10.122.48.222 is outward facing NAT IP address.

我不确定我们是否可以做到这一点,但这是一个想法。

于 2011-03-10T19:48:34.197 回答
1

路由器应该捕获端口 80 请求(或您的网络服务器应该侦听的任何端口)并将其转发到您的内部计算机端口 80,最好采用一致的 NAT 样式。

基本上,如果双方都能找到对方,那么基于 IP 的通信和正确的路由就不应该成为问题。

于 2011-03-10T12:20:24.950 回答
1

你需要做所谓的“端口转发”。最初我遇到了类似的问题,然后我将我的 IP公开的端口从仅本地转发到公司。现在我的问题解决了。希望这可以帮助。

于 2012-02-08T09:13:49.250 回答
0

这个问题已经结束了,但是由于您还没有收到这个特定的答案(我相信大多数 facebook 开发人员为了在防火墙后面进行开发而这样做),所以我将在此处发布:

您可以将您的机器反向隧道到任何具有公开可用 ip 的机器。请参阅有关此主题的博客文章

在许多 facebook sdks 中,甚至包含此功能(例如,facebooker,一个 ruby​​ gem 提供了在设置适当的设置后 rake facebooker:tunnel:start 的功能)

于 2011-03-10T23:32:32.030 回答