前段時間本身在本地寫的一個WebSocket程序部署到服務器出現了幾個錯誤,我本身也作了記錄和分析,最後總結出來給你們看一下,但願能幫助你們規避掉這些問題。同時給如今正在作WebSocket和正準備想作WebSocket的程序猿多指出一條較爲效率的路。java
Q1 客戶端連接WebSocket服務器時鏈接失敗,報404錯誤。
排查了地址錯誤和配置相關後,是由於JAR衝突,由於Tomcat7及以上,在Tomcat根目錄的lib裏已經有了websocket-api.jar,部署項目的時候若是項目的wen-inf的lib下也有websocket-api-jar會衝突,致使鏈接不上。 web
Q2 本地運行正常,鏈接到服務器上時出錯
本地環境:JDK1.8(32位)Tomcat8.0
服務器環境:JDK1.8(64位)Tomcat8.0
本地運行是正常的,在服務器部署運行時能夠打開頁面,並執行WebSocket鏈接失敗並關閉的代碼。
在Tomcat8部署的項目不要導入catalina.jar和WebSocket-api.jar這兩個包,由於Tomcat8自帶有這兩個包。本身再導入的話會有衝突,還有就是IP寫服務器的IP地址,不要寫localhost,在調試遠程服務器的Websocket程序時,要關閉本地的Tomcat服務器。api
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
但願此次的解答對大家有所幫助。websocket