【问题标题】:Firebase in NodeJS with HTTP Proxy带有 HTTP 代理的 NodeJS 中的 Firebase
【发布时间】:2015-01-21 18:44:41
【问题描述】:

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

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

我找不到任何关于 Firebase 如何获取代理设置或如何告诉 Firebase 代理的文档。是否可以从代理后面运行 Firebase(在节点中)?代理设置应该如何配置?

【问题讨论】:

    标签: firebase


    【解决方案1】:

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

    @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'},
      }  ....
    

    现在连接正常:)

    【讨论】:

    • 在这里不起作用。您正在编辑的模块是什么?
    • 为什么要使用8888端口?
    【解决方案2】:

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

    如果你不顾一切,你可以劫持 faye-websocket 的 WebSocket 实现并添加代理信息,类似于 this approach,但针对 faye-websocket 而不是 http 模块。

    【讨论】:

      【解决方案3】:

      var Client = function(_url, 协议, 选项) {

      选项 = 选项 || {};

      options.proxy = {

      来源:'http://localhost:8888',

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

      } ....

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

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

      【讨论】:

        【解决方案4】:

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

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

        export http_proxy=http://127.0.0.1:1234
        

        Firebase 会尊重它。

        【讨论】:

        • 请解释如何做到这一点。
        猜你喜欢
        • 2019-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 2021-12-29
        相关资源
        最近更新 更多