2014-11-24 109 views
3

我在通過代理連接到Firebase時遇到了一些問題。使用HTTP代理的NodeJS中的Firebase

當不通過代理(在開發機器上)運行時,或者如果我在代理服務器後面的瀏覽器中運行,應用程序工作正常。當它部署在無法繞過代理的服務器上時,會發生此問題。

我找不到關於Firebase如何提取代理設置的任何文檔,或者我如何告知Firebase關於代理的信息。是否可以從代理後面運行Firebase(在Node中)?代理設置應如何配置?

回答

4

唉,看起來好像沒有任何全局方式來告訴節點使用代理服務器的傳出連接。在代理服務器後面有一個服務器進程有點奇怪。通常,將服務器的防火牆配置爲允許這些套接字連接,而不是嘗試通過代理路由它們。

如果你不顧一切,你可能會劫持faye-websocket的WebSocket實現並添加代理信息,類似於this approach,但是針對faye-websocket而不是http模塊。

6

我有同樣的問題,並偶然發現這個線程的opon。

@Kato:謝謝你的提示!爲了開發/測試目的,我劫持了faye-websocket並能夠通過代理連接。

即王菲\ WebSocket的\ client.js,我硬編碼(我知道這是不好的,但它應該是罰款dev的目的)下面的代理配置,

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

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

它現在連接罰款:)

+0

沒有在這裏工作。你正在編輯的模塊是什麼? – 2018-01-15 17:25:46

1

VAR客戶=函數(_url,協議選項){

選項=選項|| {};

options.proxy = {

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

頭:{ '用戶代理': '節點'},

} ....

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

當我更改代理URI時,它對我有用。 thaks @jho