本次使用websocket開發chat的功能已經接近尾聲,等到壓力測試結束以後就能夠上線了。在此記錄一下整個開發過程。html
-------------------------------------------------------------------------------------------------------------------------------------------------linux
個人開發環境: nginx
Java1.8.0_25web
tomcat8.5.14ajax
nginx1.6.3spring
相關開源軟件版本:apache
sockjs-0.3windows
springmvc 4.0.6.RELEASE瀏覽器
按照官方的說法:tomcat
最低配置應該在Java7,tomcat7.0.43,nginx 1.3.13 .
參考http://nginx.org/en/docs/http/websocket.html 和http://tomcat.apache.org/tomcat-7.0-doc/changelog.html
題外話:樓主公司原本是用的是tomcat7.0.65 linux.本人開發環境使用的是8.0.43. 開發結束提交測試後再 測試服務器一直報錯,沒法運行(異常信息忘記截圖了)。樓主在開發環境windows下測試了7.0.57,7.0.72,7.0.82均可以使用。等閒了在測試一下。
最後統一升級到了tomcat8.5.14 升級過程當中除了程序中有一處ajax get方法傳參格式不規範致使的異常外,其他測試正常。
-------------------------------------------------------------------------------------------------------------------------------------------------
websocket開發分爲client端和server端
因本功能須要在mui+H5 開發的app,同時還有微信服務號,瀏覽器等多處應用,最終在client端選擇sockjs。
server端,即SpringMVC
-----------------------------------------------------------------------------------------------------------------------------------------------
系統架構
須要解決的問題:
1)nginx默認是使用http協議的,要想讓nginx支持ws或者wss協議,須要對nginx進行配置,作協議升級。具體參照http://nginx.org/en/docs/http/websocket.html
2)socket 鏈接共享。server端在服務器上的部署確定不是單機的。client1和client2 要進行對話,他們有可能連接到了不一樣的Server,websocket沒法序列化,如何把消息經過其餘Server上的websocket連接發給客戶端是須要解決的問題。