当前位置: 首页 > news >正文

旅游网站设计源码包装设计专业是学什么的

旅游网站设计源码,包装设计专业是学什么的,安徽设计公司排名,网站开发企业需求#xff1a;使用websocket不借助插件实现发布#xff0c;订阅#xff0c;网络断开重连#xff0c;单点登录后挤号的功能 1.单点登录#xff08;同一账号同一时间只有一个在线#xff0c;禁止多用户登录#xff09; 实现#xff1a;在用户登录之后获取到token令牌并… 需求使用websocket不借助插件实现发布订阅网络断开重连单点登录后挤号的功能 1.单点登录同一账号同一时间只有一个在线禁止多用户登录 实现在用户登录之后获取到token令牌并且存入到本地可以判断token令牌是否失效来让用户退出登录websocket的操作是让用户登录后连接到websocket并且发送指令这边发送的指令是后端给的之后前端进行接受消息如果消息是退出登录的直接让他清空本地并且跳转到登录页就行 1.登录获取token令牌并且存储到localStorage 2.在layout也就是页面主体框架拿到token并且去连接websocket 3.连接成功后直接发送指令之后再去监听返给前端的消息之后实现退出操作 url ${protocol}://websocket的地址要后端给?token${token}; 这个我举个例子连接地址应该是这样的ws://127.0.0.1:8080?token362466325 ws.send(msg:${this.data.id});这个也是后端定的要把账户的id给他这样去监听登录 重连之后消息返回loginOut后做退出登录的操作如果链接因为各种原因关闭了直接去请求重连。  retryCount: 0,  maxRetryCount: 5,  retryInterval: 2000, // 重试间隔时间单位毫秒 注意websocket不能设置请求头携带token好像试了很多次都不行用ws插件也不行只能拼接token给后端了有更好的方法可以在评论区联系我 let ws; let url ; export default { mounted() {this.connectWebsocket();},methods: {connectWebsocket() {let protocol ws;if (typeof WebSocket undefined) {console.log(您的浏览器不支持WebSocket);return;} else {if (window.location.protocol https:) {protocol wss;}let token localStorage.getItem(token);url ${protocol}://websocket的地址要后端给?token${token};// 打开一个wsws new WebSocket(url);ws.onopen () {// 发送数据console.log(ws已连接);ws.send(msg:${this.data.id});// this.$message.success(ws已连接);};// 发生错误时ws.onerror (evt) {console.log(ws错误, evt);};// 关闭连接ws.onclose (event) {console.warn(WebSocket 已关闭);console.log(关闭代码, event.code);console.log(关闭原因, event.reason);// 处理连接断开事件this.handleWebSocketClose();};ws.onmessage (evt) {if (evt.data loginOut) {// 此时要做清空数据的操作this.$message.warning(您的帐号在另一地点登录您已被迫下线!!);this.$router.replace(/);localStorage.clear();ws.close();ws.onclose () {console.log(ws断开连接成功);};}console.log(evt, 接收到的消息);};this.$bus.$emit(Websocket, ws);}},handleWebSocketClose() {if (this.retryCount this.maxRetryCount) {console.log(正在尝试第 ${this.retryCount 1} 次重连...);setTimeout(() {this.connectWebsocket();this.retryCount;}, this.retryInterval);} else {console.error(WebSocket 连接失败已达到最大重试次数);}}, } } 2.发布订阅 注意这边每次发布的时候都应该重新连一个新的消息不然和之前的登录的消息搞混了就不好了特别是在做操作的时候比如el-table的编辑操作这些每次关闭弹窗肯定要关闭websocket如果和登录的消息搞混了关闭弹窗就不能实时接收到单点登录传来的消息了 这个connectWebsocket和上面的不是一个这个是需要实时推送页面的websocket连接不会影响全局的单点登录的。 script let websocket; let url ;export default { connectWebsocket(data) {let protocol ws;if (typeof WebSocket undefined) {console.log(您的浏览器不支持WebSocket);return;} else {if (window.location.protocol https:) {protocol wss;}let token localStorage.getItem(token);url ${protocol}://后端的给的地址?token${token};// 打开一个websocketwebsocket new WebSocket(url);websocket.onopen () {// 发送数据// console.log(websocket已连接);websocket.send(data);this.$message.success(websocket已连接);};// 发生错误时websocket.onerror (evt) {console.log(websocket错误, evt);};// 关闭连接websocket.onclose (event) {console.warn(WebSocket 已关闭);console.log(关闭代码, event.code);console.log(关闭原因, event.reason);// 处理连接断开事件this.handleWebSocketClose(data);};}},handleWebSocketClose(data) {if (this.retryCount this.maxRetryCount) {console.log(正在尝试第 ${this.retryCount 1} 次重连...);setTimeout(() {this.connectWebsocket(data);this.retryCount;}, this.retryInterval);} else {this.$message.error(WebSocket 连接失败!!);console.error(WebSocket 连接失败已达到最大重试次数);}}, } /script2.1模拟编辑操作需要发布消息 1.点击编辑后打开并且实时接收 updData(row) {this.connectWebsocket(data_imei:${row.id});websocket.onmessage (evt) {//如果收到的消息是msgUpdif(evt.datamsgUpd){let data JSON.parse(evt.data);//把得到的数据进行json转换之后再给tableData进行展示就行let tableData.unshift(data)//也不能一直接受吧那数据得多少啊定义一下接收到多少条后截取if (tableData.length 500) {tableData.splice(500);}}} } 2.关闭弹窗后需要断开连接 closeWebSocket() {if (websocket ! null) {websocket.close();websocket.onclose () {console.log(websocket断开连接成功);};}}, 3.在离开websocket推送页面后也关闭连接 destroyed() {if (websocket ! null) {websocket.close();websocket.onclose () {console.log(websocket断开连接成功);};}}, 文章到此结束希望对你所有帮助~~
http://www.hkea.cn/news/14306902/

相关文章:

  • 绍兴做网站公司市场营销策划公司
  • 外贸网站 wordpress百度搜索指数排名
  • 莆田网站建设莆田南宁微网站制作需要多少钱
  • 中国建设银行网站查工资宾馆在什么网站做推广效果好
  • 青岛专业设计网站公司做U启的网站
  • 广州安全教育平台视频seo营销网站的设计标准
  • 绵阳市网站建立怎么跳转网站
  • 怎么用ps做网站首页背景图片软件开发与网站开发
  • 仙游县住房和城乡建设局网站陈田拆车件网上商城
  • 777fj做最好的网站网页设计公司兴田德润i简介
  • 淘宝可以到哪些网站做推广网站首页phpcms怎么添加
  • 无锡cms建站天元建设集团有限公司新中大
  • 云南网站建设专业品牌代做原创毕业设计网站
  • 做网站项目计划书网站建设与运营公司部门结构
  • 如何网站推广宣传泉州网上办事大厅
  • 邳州微网站开发苏州市吴江太湖新城建设局网站
  • 知乎建站平台qq群怎么推广
  • 网站关键词提高网页设计素材的制作与收集
  • 带论坛的网站模板下载区块链开发语言
  • 影院网站怎么做有限责任公司的特点
  • 外包做网站好多网站权重都没了
  • 典当行网站策划网站上添加百度地图导航
  • 织梦 网站源码微信小程序app下载
  • 做海报文案的参考网站手机浏览器网页加速器
  • 网站大全下载软件安装网站建设送企业邮箱吗
  • 网站添加子域名广东高端建设网站
  • 做企业网站需要招标公告上面的技术参数写什么wordpress excel搜索
  • 东莞北京网站建设小程序营销策划方案
  • 赤峰建设银行网站网站开发php岗位职责
  • 网站怎么做第三方登录西安建设网站排名