具有HTTP代理的NodeJS中的Firebase

时间:2014-11-24 05:22:49

标签: firebase

我在通过代理连接到Firebase时遇到了一些问题。

当没有通过代理(在开发机器上)运行时,或者如果我在代理后面的浏览器中运行时,应用程序正常工作。当它部署在无法绕过代理的服务器上时会发生此问题。

我无法找到有关Firebase如何获取代理设置的任何文档,或者我如何告诉Firebase有关代理的信息。是否可以从代理服务器后面运行Firebase(在Node中)?如何配置代理设置?

4 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,并且发现了这个帖子。

@Kato:谢谢你的暗示!为了开发/测试目的,我劫持了faye-websocket并且能够通过代理连接。

即,在faye \ websocket \ client.js中,我硬编码(我知道它很糟糕,但对于开发目的应该没问题)下面的代理配置,

var Client = function(_url, protocols, options) {
  options = options || {};

  options.proxy = {
    origin:  'http://localhost:8888',
    headers: {'User-Agent': 'node'},
  }  ....

现在连接正常:)

答案 1 :(得分:4)

唉,看起来没有任何全局方式告诉节点使用代理进行传出连接。在代理服务器后面有一个服务器进程有点奇怪。通常,可以配置服务器的防火墙以允许这些套接字连接,而不是尝试通过代理路由它们。

如果你很绝望,你可能会劫持faye-websocket的WebSocket实现并添加代理信息,类似于this approach,但是定位faye-websocket而不是http模块。

答案 2 :(得分:2)

  

var Client = function(_url,protocols,options){

     

options = options || {};

     

options.proxy = {

     

原产地:'http://localhost:8888',

     

标题:{'User-Agent':'node'},

     

} ....

我的本​​地代理是“http://127.0.0.1:8118

当我更改代理uri时,它对我有用。感谢@jho

答案 3 :(得分:0)

这是firebase-tools中的bug,在4.1.2中是fixed

现在您可以在环境变量中设置代理:

export http_proxy=http://127.0.0.1:1234

firebase会尊重它。