由于项目需要,前端向后台发起请求后,后台需要分成多个步骤进行相关操作,而且不能确定各步骤完成所需要的时间倘若使用ajax重复访问后台以获取实时数据,显然不合适,无论是对客户端,还是服务端的资源很是浪费这种情况下,WebSocket能够解决此问题它不像普通的http请求或者ajax ...
由于项目需要,前端向后台发起请求后,后台需要分成多个步骤进行相关操作,而且不能确定各步骤完成所需要的时间
倘若使用ajax重复访问后台以获取实时数据,显然不合适,无论是对客户端,还是服务端的资源很是浪费
这种情况下,WebSocket能够解决此问题
它不像普通的http请求或者ajax访问,返回相应的结果就关闭了连接
WebSocket在个人浅薄的知识看来是属于长连接,能保持连接,随时收发数据
所以对WebSocket进行了初步了解,并按照相关的教程尝试做了一个简易demo
首先需要了解的是,WebSocket的几个基本操作
- 客户端开启连接
- 客户端给服务器发送数据
- 服务器接收数据
- 服务器给客户端发送数据
- 客户端接收数据
其中,服务端和客户端都能监听三类基本事件:
1、onopen(打开连接) 2、onmessage(发送数据) 3、onclose(关闭连接)
本次的demo中使用了tomcat7.0作为服务端,据悉7.0以上的版本才支持WebSocket
首先使用eclipse创建一个web project
在工程根目录下的WEB-INF/lib目录中导入tomcat7.0的lib文件夹中的 tomcat7-websocket.jar 和 websocket-api.jar
然后在src目录下创建第一个类(重点在于继承ServerApplicationConfig)
package cn.test.websocket;import java.util.Set;import javax.websocket.Endpoint;import javax.websocket.server.ServerApplicationConfig;import javax.websocket.server.ServerEndpointConfig;public class ApplicationConfig implements ServerApplicationConfig { //扫描注解 @Override public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scan) { System.out.println("scan WebSocket" + scan.size()); //返回(起到过滤的作用,可以在返回前把里面部分类进行过滤) return scan; } //实现接口 @Override public Set<ServerEndpointConfig> getEndpointConfigs( Set<Class<? extends Endpoint>> arg0) { // TODO Auto-generated method stub return null; }}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:WebSocket基于javaweb+tomcat的简易demo程序
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。