【发布时间】:2015-01-21 18:44:41
【问题描述】:
我在让 Node 通过代理连接到 Firebase 时遇到了一些问题。
当不通过代理(在开发机器上)运行时,或者如果我在代理后面的浏览器中运行时,应用程序可以正常工作。当它部署在无法绕过代理的服务器上时会出现问题。
我找不到任何关于 Firebase 如何获取代理设置或如何告诉 Firebase 代理的文档。是否可以从代理后面运行 Firebase(在节点中)?代理设置应该如何配置?
【问题讨论】:
标签: firebase
我在让 Node 通过代理连接到 Firebase 时遇到了一些问题。
当不通过代理(在开发机器上)运行时,或者如果我在代理后面的浏览器中运行时,应用程序可以正常工作。当它部署在无法绕过代理的服务器上时会出现问题。
我找不到任何关于 Firebase 如何获取代理设置或如何告诉 Firebase 代理的文档。是否可以从代理后面运行 Firebase(在节点中)?代理设置应该如何配置?
【问题讨论】:
标签: firebase
我遇到了同样的问题,偶然发现了这个帖子。
@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'},
} ....
现在连接正常:)
【讨论】:
唉,似乎没有任何全局方法可以告诉节点使用代理进行传出连接。在代理后面有一个服务器进程有点奇怪。通常,会配置服务器的防火墙以允许这些套接字连接,而不是尝试通过代理路由它们。
如果你不顾一切,你可以劫持 faye-websocket 的 WebSocket 实现并添加代理信息,类似于 this approach,但针对 faye-websocket 而不是 http 模块。
【讨论】:
var Client = function(_url, 协议, 选项) {
选项 = 选项 || {};
options.proxy = {
来源:'http://localhost:8888',
标头:{'User-Agent': 'node'},
} ....
我的本地代理是“http://127.0.0.1:8118”
当我更改代理 uri 时,它对我有用。谢谢@jho
【讨论】: