我的流星服務器將從互聯網上的其他來源獲取數據。該請求必須通過代理。如何爲服務器端HTTP.call指定代理服務器?如何通過代理使流星服務器HTTP.call?
回答
找到我的問題的解決方案。
我使用Windows,無法找到一種方法來設置默認代理的OS爲塞爾坎提及。在Internet Explorer Internet選項中設置代理服務器LAN設置不起作用。 winHTTP中的設置代理不起作用。任何人都知道如何做到這一點?
最合理的將是節點讀取環境變量和使用的。所以,我創建了一個環境變量「HTTP_PROXY」,並看是否節點會讀它我想:
D:\Appl\.meteor\tools\a5dc07c9ab\bin>node -e "console.log(process.env.http_proxy)"
,並沒有輸出我的變量。但是,當試圖在Node內直接創建http.get()請求時,它失敗了。節點顯然不使用該變量...
結論是,我必須明確地設置我的應用程序中的代理,但這是不可能與流星HTTP。相反,我可以使用請求模塊(Meteor HTTP正在使用)並設置代理。不是理想的解決方案,因爲我的應用程序必須知道代理服務器,但可以用於我的目的。
if (Meteor.isServer) {
var request = Npm.require("request");
var makeRequest = Meteor._wrapAsync(thirdLibMakeRequest);
function thirdLibMakeRequest(options, callback) {
options.proxy = "http://myProxyServer:8080";
request(options, callback);
};
var response = makeRequest({ url: "http://UrlToSomeSite" });
}
- 包括請求模塊
- 裹第三-lib的異步方法,所以我們可以在流星 使用
- 設置請求模塊
- 使用makeRequest的發出請求的代理財產。
與此同時我已經[發佈了一個包](http://stackoverflow.com/a/22069540/1269037),應該允許您將選項傳遞給Node的'request'模塊。 –
幾乎降低了您使用Windows的權利。 – nottinhill
由於您的流星應用程序將運行的平臺將是代理爲一體的背後,你會需要代理訪問通常反正。
因此,你可以設置你的平臺(操作系統)最高默認連接到代理服務器,因此流星不一定會知道/關心的代理的存在,因爲它是透明的了。
我[發表一個模塊(http://stackoverflow.com/a/22069540/1269037),允許參數傳遞到節點的'request'模塊,包括代理。這樣,只有流星應用需要通過代理。 –
您可以輕鬆地通過代理讓所有HTTP.*
電話如果只是流星開發商接受了我的要求拉像proxy
通過選項給request
模塊,在其上HTTP
包爲主。
Please comment on this GitHub issue to ask for that.
更新:由於流星開發者拒不執行這種變化,我發表了大氣包,讓您傳輸到節點(即到request
模塊)所需的任何選項。
檢出http-more在大氣。
你可以給我們一個如何使用http-more來設置代理服務器和流星項目的例子嗎? – Andrew
@Andrew:我自己沒有使用代理,但[其他人有](https://github.com/StockBase/meteor-http-more/pull/3)。語法與[請求模塊](https://github.com/request/request#requestoptions-callback)的語法相同:只需將'proxy'添加到[http options](https:// docs。 meteor.com/#/full/http)對象。 –
- 1. 流星http.call在服務器上無法正常工作
- 2. 通過服務器/代理服務器
- 3. 流星HTTP.call(「get」)迴應
- 4. 流星HTTP.call gzip答案
- 5. 通過代理服務器
- 6. 流星HTTP.call未定義在客戶端,在服務器端工作
- 7. 如何使用流星JS節點服務器代理第三方AJAX請求
- 8. 流星 - QR代碼生成流星服務器
- 9. 如何通過Youtube API使用代理服務器? (Python)
- 10. 如何通過代理服務器使用API上傳到YouTube
- 11. 如何通過代理使用ADO訪問SQL服務器?
- 12. 突觸httpsend通過代理服務器
- 13. 通過代理服務器的Javascript
- 14. Xsockets.NET通過代理服務器
- 15. GM_xmlhttp請求通過代理服務器
- 16. 通過代理訪問服務器
- 17. 通過代理服務器的IdFTP.Connect
- 18. 通過代理服務器調用Webservice
- 19. 如何通過代碼更改代理服務器
- 20. 流星服務器反應
- 21. 流星服務器實例
- 22. 更改流星服務器
- 23. 流星OAuth2服務器
- 24. C#插座:通過代理服務器連接到服務器
- 25. 連接到通過代理服務器的SIP服務器
- 26. 通過「代理」服務器PHP刷新服務器響應
- 27. 發送代理服務器驗證通過Websocket到代理服務器
- 28. TidUDPClient通代理服務器
- 29. 如何在使用流星和流星時監控服務器端日誌
- 30. R過代理服務器
重複[如何強制Meteor應用程序通過代理進行所有HTTP調用?](http://stackoverflow.com/questions/20040953/how-can-i-force-a-meteor-通過代理應用程序的所有HTTP呼叫)(我自己問這個問題:)雖然SO是令人驚訝的不好發現它相關。 –