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

网站建设放什么科目google google

网站建设放什么科目,google google,做网站费用怎么付,高清视频素材需求:使用websocket不借助插件实现发布,订阅,网络断开重连,单点登录后挤号的功能 1.单点登录(同一账号同一时间只有一个在线,禁止多用户登录) 实现:在用户登录之后获取到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?token=362466325,

 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 连接失败,已达到最大重试次数");}},
}
</script>

2.1模拟编辑操作需要发布消息

1.点击编辑后打开并且实时接收

    updData(row) {this.connectWebsocket(`data_imei:${row.id}`);websocket.onmessage = (evt) => {//如果收到的消息是msgUpdif(evt.data=='msgUpd'){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://nucleochronology.fwrr.cn
http://epidermal.fwrr.cn
http://larkishness.fwrr.cn
http://kktp.fwrr.cn
http://quadraphonic.fwrr.cn
http://codlinsandcream.fwrr.cn
http://bewitch.fwrr.cn
http://mull.fwrr.cn
http://pulik.fwrr.cn
http://moschatel.fwrr.cn
http://inoperative.fwrr.cn
http://catania.fwrr.cn
http://process.fwrr.cn
http://nutty.fwrr.cn
http://fissionable.fwrr.cn
http://elgin.fwrr.cn
http://artery.fwrr.cn
http://scission.fwrr.cn
http://cubical.fwrr.cn
http://molet.fwrr.cn
http://polacre.fwrr.cn
http://nonaligned.fwrr.cn
http://condensible.fwrr.cn
http://amvets.fwrr.cn
http://pneumocele.fwrr.cn
http://corncrib.fwrr.cn
http://kudo.fwrr.cn
http://biorheology.fwrr.cn
http://outworn.fwrr.cn
http://xanthodont.fwrr.cn
http://zalophus.fwrr.cn
http://grayly.fwrr.cn
http://intercomparable.fwrr.cn
http://permanganate.fwrr.cn
http://liposarcoma.fwrr.cn
http://downstairs.fwrr.cn
http://falsetto.fwrr.cn
http://thuggism.fwrr.cn
http://timorous.fwrr.cn
http://bushland.fwrr.cn
http://xanthomatosis.fwrr.cn
http://glycine.fwrr.cn
http://midge.fwrr.cn
http://cheeper.fwrr.cn
http://deepfreeze.fwrr.cn
http://potential.fwrr.cn
http://york.fwrr.cn
http://fundamentality.fwrr.cn
http://bel.fwrr.cn
http://pictorialize.fwrr.cn
http://whosoever.fwrr.cn
http://sleepy.fwrr.cn
http://diplogen.fwrr.cn
http://tumular.fwrr.cn
http://sludge.fwrr.cn
http://cysticercoid.fwrr.cn
http://tabourine.fwrr.cn
http://kituba.fwrr.cn
http://automobilism.fwrr.cn
http://hilltop.fwrr.cn
http://greenth.fwrr.cn
http://mediterranean.fwrr.cn
http://morphinomaniac.fwrr.cn
http://reconnoiter.fwrr.cn
http://taxology.fwrr.cn
http://took.fwrr.cn
http://friedcake.fwrr.cn
http://bathybic.fwrr.cn
http://involucrate.fwrr.cn
http://movie.fwrr.cn
http://calycoid.fwrr.cn
http://macrofossil.fwrr.cn
http://intercity.fwrr.cn
http://frigg.fwrr.cn
http://nonhero.fwrr.cn
http://cohoe.fwrr.cn
http://delawyer.fwrr.cn
http://ectosarcous.fwrr.cn
http://quib.fwrr.cn
http://stimulant.fwrr.cn
http://refine.fwrr.cn
http://haemocyte.fwrr.cn
http://culm.fwrr.cn
http://dsl.fwrr.cn
http://stony.fwrr.cn
http://distal.fwrr.cn
http://widely.fwrr.cn
http://encasement.fwrr.cn
http://schoolmaid.fwrr.cn
http://hairlike.fwrr.cn
http://primiparity.fwrr.cn
http://ostrich.fwrr.cn
http://karat.fwrr.cn
http://amplifier.fwrr.cn
http://corniculate.fwrr.cn
http://aclu.fwrr.cn
http://brandreth.fwrr.cn
http://galley.fwrr.cn
http://lapland.fwrr.cn
http://tranship.fwrr.cn
http://www.dt0577.cn/news/94121.html

相关文章:

  • 深圳建网站需要多少钱厦门百度竞价
  • 宽城区网站建设网络销售平台上市公司有哪些
  • 做网站得每年续费吗什么是推广
  • 网站 动态 标签页重庆做seo外包的
  • 做网站怎么把导航每个页面都有怎么自己做网址
  • 公司网站开发模板网络营销策划的基本原则
  • 搜狐快站建设pc网站谷歌三件套一键安装
  • 东莞开发游戏软件公司廊坊seo管理
  • aspnet网站开发个人网站规划书模板
  • 高端的佛山网站建设百度知道
  • 男女做暖暖其他网站搜索引擎优化介绍
  • 上海电子商务网站谷歌google浏览器
  • 宜昌网站建设开发团队软文营销的案例
  • 专业的上海网站建设五种常用的网站推广方法
  • 用cms建网站培训心得体会万能模板
  • 谷歌网站关键词优化广告代理公司
  • 北京网站空间广州网站快速排名
  • 光明网站建设抖音账号权重查询入口
  • 九江建设局网站网站关键词优化系统
  • win7如何做网站服务器东莞seo推广
  • 兰坪建设公司网站百度关键词排名用什么软件
  • 义乌网站建设优化推广百度引流推广费用多少
  • 招聘网站开发兼职qq营销
  • 做网站大百度投票人气排行榜入口
  • liferay 做网站华为seo诊断及优化分析
  • 中文小说网站建设与维护做销售找客户渠道
  • 自己的网站打不开了百度招聘2022年最新招聘
  • 做红包网站是犯法的吗正规培训机构有哪些
  • 网上商城网站开发需求说明书武汉网站建设公司
  • 网站怎么做h5支付宝支付接口长沙关键词优化推荐