Error during WebSocket handshake: Unexpected response code: 200 問題處理
阿新 • • 發佈:2020-07-25
專案採用了Nginx做反向代理,在非代理的情況下,採用ip或者域名訪問都是ok的。
但是當採用了反向代理後,專案中的SignalR就一直丟擲“Error during WebSocket handshake: Unexpected response code: 200”的異常
跟進錯誤資訊搜尋到的解決方案大致都是如下,nginx裡面條件相關WebSocket 的配置,主要是是如下三項:
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Cpnnection"upgrade";
配置後的截圖如下:
修改配置後需要重啟重啟Nginx
發現按照網上如此配置沒有效果,還是丟擲一樣的錯誤資訊。
後檢視Nginx官方文件,需要對於WebSocket進行單獨的配置
上圖中的 /wsapp/ 指的也就是我們的SignalR的hub名稱,我們當前的hub的名稱是:searchStatusHub,修改後的配置如下:
修改配置後需要重啟重啟Nginx
修改之後發現問題已經解決!
為了驗證路由是走的hub配置的,我們將根路由的相關的WebSocket配置註釋,如下圖:
修改配置後需要重啟重啟Nginx
發現一切正常,如下圖,測試通過!