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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM