WebSocket部署到服務(wù)器出現(xiàn)連接失敗問題的分析與解決
前言
前段時間在本地寫的一個WebSocket程序部署到服務(wù)器上時出錯,通過一段時間的研究,終于解決了,所以本文就來給大家分析下并給出解決的方法,下面話不多說了,來一起看看詳細的介紹吧。
本地環(huán)境是:JDK1.8(32位) Tomcat8.0
服務(wù)器環(huán)境是:JDK1.8(64位) Tomcat8.0
本地運行是正常的。
在服務(wù)器部署運行時可以打開頁面,并執(zhí)行WebSocket連接失敗并關(guān)閉的代碼。如圖:

問題解決:
1.在Tomcat8部署的項目不要導(dǎo)入catalina.jar和websocket-api.jar這兩個包,因為Tomcat8自帶有這兩個包。自己再導(dǎo)入的話會沖突。
2.
websocket = new WebSocket("ws://192.168.10.119:8080/RMExpertView/test");
IP要寫服務(wù)器的Ip地址,不要寫localhost.
3.調(diào)試遠程服務(wù)器的webSocket程序時,要關(guān)閉本地的Tomcat服務(wù)器。
問題分析
1.WebSocket的Ip應(yīng)該指向服務(wù)器IP。最終Jsp的代碼會在本地瀏覽器執(zhí)行,與之連接的IP應(yīng)該是服務(wù)器IP而不該指向本地。
2.包沖突的問題。尤其是Tomcat7升級到Tomcat8的項目尤其要注意。
3.由于WebSocket是長連接,如果本地的服務(wù)先跑起來,而后服務(wù)器的WebSocket再跑起來,因為webSocket地址中的標識字段相同,所以即使服務(wù)器掛掉,即使使用服務(wù)器的ip去訪問依然可以成功,因為訪問的其實是本地的Tomcat服務(wù)器。
Demo下載
鑒于跟我尋求Demo的人太多,附上下載鏈接:http://xiazai.jb51.net/201710/yuanma/WebSocketDemo(jb51.net).rar
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
如何刪除Git本地倉庫和刪除GitHub上的Git遠程倉庫Repository(推薦)
這篇文章主要介紹了如何刪除Git本地倉庫和刪除GitHub上的Git遠程倉庫Repository,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
為Jenkins創(chuàng)建定時構(gòu)建任務(wù)
這篇文章介紹了為Jenkins創(chuàng)建定時構(gòu)建任務(wù)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
詳解git使用小結(jié)(本地分支與遠程分支、git命令)
這篇文章主要介紹了git使用小結(jié)(本地分支與遠程分支、git命令),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08

