本次使用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连接发给客户端是须要解决的问题。