当前位置: 首页 > 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/14519189/

相关文章:

  • 上海网站设计公司电子商务网站预算
  • 宁波甬晟园林建设有限公司网站知晓程序 小程序商店
  • 济南网站建设山东酷风网站建设hairongsoft
  • 为什么公司要做网站石家庄网站建设联系方式
  • 购物网站开发背景及意义企业网站建设一站通系统简单
  • 互联网网站 有哪些地方门户网站取名
  • 吉林省建设工程造价信息网站官网网站页面设计
  • 潍坊网站建设公司慕枫做电影网站要很大的主机空间吗
  • wordpress外贸建站公司淄博seo网络公司
  • 企业门户网站建设精英企业网站制作免费
  • 青岛+网站建设南宁seo优化公司排名
  • 音乐网站网页设计域名除了做网站还能做什么
  • 怎么找网站做宣传黑帽seo是什么意思
  • 公司手机网站建设建设通官网通
  • 可以接项目做的网站营销型建设
  • 做简单视频网站自己看wordpress发不了博文
  • 什么是营销型网站?wordpress链接 数据库
  • 网站是如何做的商城网站 搭建
  • 管理信息系统网站建设wordpress插件c++
  • 高中信息技术课网站怎么做做网站虚拟主机要多大
  • 如何建立一个自己的网站怎么进入网站开发模式
  • 网站优化的作用做ppt常用的网站
  • 佛山p2p网站建设企业vi设计模板
  • 深圳高端网站设计开发网络营销课程个人总结3000字
  • 旅游网站html模板开广告公司怎样跑生意
  • 网站建设项目总结百度权重1是什么意思
  • 网站搭建什么意思建站小程序
  • 做淘宝客网站域名是别人的湖北网站推广系统
  • 做网站需要什么文件临沧网站建设
  • 响应式网站设计案例织梦网站wap