1. 程式人生 > 實用技巧 >Error during WebSocket handshake: Unexpected response code: 200 問題處理

Error during WebSocket handshake: Unexpected response code: 200 問題處理

專案採用了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

發現一切正常,如下圖,測試通過!