欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 前端技术 > javascript >内容正文

javascript

spring mvc使用websocket保持长连接 -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 javascript 16 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 spring mvc使用websocket保持长连接 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

说明

客户端需要与服务器保持长连接

配置

  • 在pom.xml中加入包依赖
javaxjavaee-api7.0providedorg.springframeworkspring-websocket4.3.13.release
  • java后台实现代码
package com.netcar.tien.mobile;import java.io.ioexception;import javax.websocket.onclose; import javax.websocket.onerror; import javax.websocket.onmessage; import javax.websocket.onopen; import javax.websocket.session; import javax.websocket.server.serverendpoint;import org.springframework.web.socket.server.standard.springconfigurator;import com.netcar.tien.core.log.logfactory; import com.netcar.tien.core.log.onlinelog;/*** 保持socket连接* @author joyoduan* add by joyoduan on 2018-02-22* * @serverendpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端,* 注解的值将被用于监听用户连接的终端访问url地址,客户端可以通过这个url来连接到websocket服务器端*/ @serverendpoint(value="/app/websocket", configurator = springconfigurator.class) public class websocket {private onlinelog logger = logfactory.getonlinelog(websocket.class);//socket连接会话,用于发送消息给客户端private session session;/*** 客户端连接成功* @param session* @throws ioexception*/@onopenpublic void onopen(session session) throws ioexception {this.session = session; // system.out.println("websocket连接成功");logger.info("websocket - 连接成功");}/*** 收到消息时执行* @param message* @param session* @throws ioexception*/@onmessage public void onmessage(string message, session session) throws ioexception { this.sendmessage("success");}/*** 关闭时执行*/@onclosepublic void onclose() { logger.info("websocket - 连接关闭"); // system.out.println("websocket连接关闭");}/*** 连接错误时执行* @param session* @param error*/@onerror public void onerror(session session, throwable error) {logger.error("websocket - 出错:" error.getmessage()); // system.out.println("websocket出错" error);}/*** 发送消息给客户端* @param message* @throws ioexception*/public void sendmessage(string message) throws ioexception {this.session.getbasicremote().sendtext(message);} }
  • 前端使用websocket代码
/*** 与服务器保持长连接* @param {boolean} [isreconnect]* @returns* @memberof homepage*/connectwebsocket(isreconnect?: boolean){let websocket = new websocket(this.urlservice.getwebsocket); ///websocketthis.globaldata.islog && console.log('websocket:', 'websocket' in window);//上传经纬度的定时器let uploadlnglattimer: number = null;if (!isreconnect && !('websocket' in window)){// this.nativeservice.alert('您的手机不支持位置上传');return;}//监测网络断开this.nativeservice.monitornetworkdisconnect(() => {this.nativeservice.toast('亲,网络连接中断了');//递归,重新连接this.connectwebsocket(true);return;});//初始化websocketwebsocket.onopen = (event) => {this.globaldata.islog && !isreconnect && console.log('websocket - 连接服务器成功!', event);this.globaldata.islog && isreconnect && console.log('websocket - 重新连接服务器!', event);//每隔10秒上传一次经纬度uploadlnglattimer = setinterval(() => {//上传经纬度时定位当前位置this.getamaplocationbyjs(true, () => {// websocket.send('joyoduan' new date().gettime());let params = {strokeno: this.trip.strokeno,strokestatus: this.trip.strokestatus,strokelongitude: this.position.currentposition.lnglat.lng,strokelatitude: this.position.currentposition.lnglat.lat,routeid: this.trip.routeid,cartypeid: this.trip.cartypeid || ''};//发送经纬度到服务器websocket.send(secret.encodebase64string(json.stringify(params)));this.globaldata.islog && console.log('websocket - 实时上传经纬度发送参数:', json.stringify(params));});}, timeout.upload_lnglat_timeout);};//连接关闭时执行websocket.onclose = () => {this.globaldata.islog && console.log('websocket - 连接服务器关闭!', event);//清除计时器,停止发送clearinterval(uploadlnglattimer);};//连接出现错误时执行websocket.onerror = (event) => {this.globaldata.islog && console.log('websocket - 连接服务器错误!', event);//10秒重连一次settimeout(() => {this.connectwebsocket(true);}, timeout.reconnect_web_socket);};//收到服务器消息时执行websocket.onmessage = (event) => {this.globaldata.islog && console.log('websocket - 服务器发送的消息!', event);}}

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的spring mvc使用websocket保持长连接的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图