2017-05-31 56 views
1

如何代理一個WebSocket請求?Angular CLI代理服務器wss

我嘗試這樣做:

new WebSocket('/wss/api/v3/users/websocket')

代理:

"/wss/*" : { 
    "target" : "wss://someurl.com:443/", 
    "secure" : false, 
    "ws" : true, 
    "wss": true 
} 

但是,這給了我: Failed to construct 'WebSocket': The URL '/wss/api/v3/users/websocket' is invalid.

接下來我想:

new WebSocket('wss://wss/api/v3/users/websocket')

代理:

"*wss/*" : { 
    "target" : "someurl.com:443/", 
    "secure" : false, 
    "ws" : true, 
    "wss": true 
} 

但是,這給了我:websocket.provider.ts:20 WebSocket connection to 'wss://wss/api/v3/users/websocket' failed: Error in connection establishment: net::ERR_NAME_NOT_RESOLVED

我怎麼代理一個WebSocket的?

+0

我有同樣的問題,不想用環境文件解決方案。你有能力使它工作嗎?如果是這樣,你可以發佈你的最終解決方案嗎? thx – j3ff

+0

對不起,不記得 –

+0

好吧,無論如何,我必須抓住機會......調試這是如此令人沮喪:P – j3ff

回答

1

由於new WebSocker(url)需要完整的網址才能使用,因此無法使用。

new WebSocket('wss://localhost:3000/wss/api/v3/users/websocket'); 

我將angular-clis environment.ts文件中的設置與應用程序的基本url一起使用,然後使用它對字符串進行連接。

+0

我想使用代理,因爲沒有它,我會得到一個「否」Access-Control- Allow-Origin'標題出現在請求的資源上.'錯誤 –

+0

您仍然可以使用代理,但websocket的構造函數需要絕對URL。 –

+0

這就是我在第二個例子中做的對嗎? –