开发环境(最低版本):spring 4.0+java7+tomcat7.0.47+sockjs
前端页面要引入:
<script src="http://cdn.jsdelivr.net/sockjs/1/sockjs.min.js"></script>
maven依赖:
<dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-WebSocket</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>4.3.10.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>4.3.10.RELEASE</version> </dependency>
前端js:
var ws = null; function openWebSocket(){ //判断当前浏览器是否支持WebSocket if ('WebSocket' in window) { ws = new WebSocket("ws://"+window.location.host+"/项目名称/visualizationWebSocket.do?type=mall"); } else { ws = new SockJS("http://"+window.location.host+"/项目名称/sockjs/visualizationWebSocket/info?type=mall"); } ws.onopen = function () { };
//这个事件是接受后端传过来的数据 ws.onmessage = function (event) { //根据业务逻辑解析数据 }; ws.onclose = function (event) { }; }
我实现连接后台的方式如下:
//页面已加载后加载后台数据 $(function (){ $.ajax({ cache:false, data:"", type:"post", url:"", success:function(data, textStatus){ if(data && data.status === "1"){ //这里可以初始化操作 openWebSocket();//websocket连接到后台 if(ws){ setTimeout(function (){ ws.send(""