簡體   English   中英

Websocket over Spring Netflix Zuul

[英]Websocket over Spring Netflix Zuul

關於這個問題: https//github.com/spring-cloud/spring-cloud-netflix/issues/163是否有合理的方法來設置與Websockets一起使用的Spring Cloud Zuul反向代理?

我能夠將代理設置到websocket端點並成功從客戶端連接到它,但由於連接超時非常短,連接會不斷關閉。 在這一點上我最關心的是Zuul服務自動發現。 嘗試使用與參考文獻中描述的文件下載類似的解決方法是否有任何意義,盡管具有更大的連接超時?

這些都是合理的選擇嗎? 喜歡寫我自己的ZuulFilter?

因為,沒有答案,這是我能夠找到關於使用Zuul與WebSockets。

我的問題在於我使用Sock.js並且在通過Zuul Sock.js連接的意義上是不准確的:

405 - 糟糕的請求

響應,它立即使它回落到xhr-straming,這當它能夠建立連接時,所以

不,不可能使用Websocket協議覆蓋Zuul。

但是我仍然面臨第二個問題,即使我能夠使用回退Sock.js傳輸進行連接,連接也會被代理連續關閉。 Fortunetly Sock.js要求服務器每隔10秒(默認情況下)“發送”聽覺聲音,因此調整功能區和hystrix超時時,您可以維護“Sock.js連接”而無需特殊的錯誤重現邏輯。 所以如參考文獻中所述:

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:60000功能區:ConnectTimeout:3000 ReadTimeout:60000

我已將此超時設置為Sock.js使用時間的兩倍 - 所以20秒。

這仍然不是本機Websocket支持。

我仍然在尋找Zuul代理的合理替換,或者一些建議我可以做出的其他步驟。

一直在看這個問題,我們有類似的要求,通過zuul服務器代理websocket連接。 這個要求略有不同,因為websocket連接將是“特殊的”,並且不需要像通過zuul的其他請求那樣處理。

以前,使用nodejs和http-proxy非常容易實現。 這是如何開始使用java和Spring Boot的示例: https//github.com/barrett-rob/java-websocket-reverse-proxy

注意:沒有安全,連接重建等

問題已經回答了,但萬一有人來這里尋找Zuul的Websockets解決方案:

從2.0開始,Zuul正式支持這里,這里是文檔:
https://github.com/Netflix/zuul/wiki/Push-Messaging

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM