前言:想实时获取后台最新数据目前有三种解决方案。
1.做js定时器,设定固定时间发起请求。俗称短轮询
2.客户端发起请求,服务端接收到请求,检查数据是否有变,若无变化阻塞请求,若变化响应请求,客户端收到响应立即再次发起请求。俗称长轮询
3.使用H5提供的建立在TCP 连接上的双向通讯的协议即webSocket。
webSocket客户端搭建
创建webSocket对象
var webSocket = new WebSocket('ws://localhost:80/demo/websocket');
webSocket.onopen = function(event) {//建立连接的回调函数}
webSocket.send('heheda');//向服务器发送请求
webSocket.onmessage = function(event) {
//接收到响应回调 数据:event.data
}
webSocket.onerror = function(event) {//连接失败的回调函数}
java服务端搭建(tomcat 8+)
@ServerEndpoint("/websocket")//使用这个注解修饰类
@OnMessage//这个注解修饰onMessage方法
public void onMessage(String message,Session session){
//message是接收到的消息
//session.getBasicRemote().sendText("")//用来响应数据
}
@OnOpen
public void onOpen(Session session) {
//链接成功执行方法
}
@OnClose
public void onClose() {
//链接关闭执行方法
}
网友评论