客戶端連接WebSocket服務器時連接失敗會出現的一些問題及解決方案


  前段時間自己在本地寫的一個WebSocket程序部署到服務器出現了幾個錯誤,我自己也做了記錄和分析,最后總結出來給大家看一下,希望能幫助大家規避掉這些問題。同時給現在正在做WebSocket和正准備想做WebSocket的程序猿多指出一條較為效率的路。

 

Q1 客戶端鏈接WebSocket服務器時連接失敗,報404錯誤。

   排查了地址錯誤和配置相關后,是因為JAR沖突,因為Tomcat7及以上,在Tomcat根目錄的lib里已經有了websocket-api.jar,部署項目的時候如果項目的wen-inf的lib下也有websocket-api-jar會沖突,導致連接不上。

 

Q2 本地運行正常,連接到服務器上時出錯

   本地環境:JDK1.8(32位)Tomcat8.0

   服務器環境:JDK1.8(64位)Tomcat8.0

   本地運行是正常的,在服務器部署運行時可以打開頁面,並執行WebSocket連接失敗並關閉的代碼。 

   在Tomcat8部署的項目不要導入catalina.jar和WebSocket-api.jar這兩個包,因為Tomcat8自帶有這兩個包。自己再導入的話會有沖突,還有就是IP寫服務器的IP地址,不要寫localhost,在調試遠程服務器的Websocket程序時,要關閉本地的Tomcat服務器。

 

Q3 客戶端鏈接WebSocket服務器成功后,測試消息推送獲取session失敗。(java WebSocket)

   這時一定要注意,客戶端連接服務器時的地址如果使用了localhost:8080/,那么瀏覽器也一定要使用localhost:8080/,不然兩個請求不是同一個session,所以會獲取不到。

 

Q4 WebSocket鏈接服務器報302錯誤

   鏈接重定向,可以檢查一下是不是后台訪問機制的問題,還有可以看一下是不是URL路徑不對。

 

  這是我寫的WebSocket程序部署到服務器出現的幾個錯誤以及解決方法,如果我下次還會用到WebSocket這塊我可能會選擇第三方的……不想在這塊花太多時間。

  現在免費的第三方WebSocket服務有很多,我就不一一列舉了,拿個比較簡單容易上手的GoEasy,調用了一個Rest API就OK了。如果你不是專業做服務器的,我建議可以使用這種第三方的,比較節省時間。

GoEasy地址:www.goeasy.io

希望這次的解答對你們有所幫助。

 


免責聲明!

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



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