网页 消息通知(前端)

该代码段展示了如何初始化和管理WebSocket连接,包括心跳检测、异常处理、重连机制以及消息监听。在连接打开时启动心跳,在接收到消息时重置心跳。当连接关闭或出现错误时,会进行重连尝试。此外,还有专门的函数处理发送消息和关闭WebSocket连接。
摘要由CSDN通过智能技术生成

data {
    return {
 // publicksocket 全局socket
     socket: null,
         timeout: 5 * 1000, // 45秒一次心跳
         timeoutObj: null, // 心跳心跳倒计时
         serverTimeoutObj: null, // 心跳倒计时
         timeoutnum: null, // 断开 重连倒计时
         lockReconnect: false, // 防止
         websocket: null
    }
},
methods :{
// 全局监听webSocket 
    initWebSocket(){
      if(this.websocket){
        this.websocket.close()
        this.websocket = null
      }
      this.websocket = new WebSocket(`wss://***.***.com/api/iws-sms/api/sms/${this.userId}`)
      let that = this.websocket;
        that.onopen = this.websocketonopen;
        that.onerror = this.websocketonerror;
        that.onmessage = this.websocketonmessage; 
        that.onclose = this.websocketclose;
    },
    start() {
            console.log('start');
            //清除延时器
            this.timeoutObj && clearTimeout(this.timeoutObj);
            this.serverTimeoutObj && clearTimeout(this.serverTimeoutObj);
            this.timeoutObj = setTimeout(() => {
                if (this.websocket && this.websocket.readyState == 1) {
          let heart = {
          "action":"heart",
          "content":{ "type":"words", "content":""} 
          }
                    this.websocket.send(JSON.stringify(heart));//发送消息,服务端返回信息,即表示连接良好,可以在socket的onmessage事件重置心跳机制函数
                } else {
                    this.reconnect();
                }
                //定义一个延时器等待服务器响应,若超时,则关闭连接,重新请求server建立socket连接
                this.serverTimeoutObj = setTimeout(() => {
                    this.websocket.close();
                }, this.timeout)
            }, this.timeout)
        },
        reset() { // 重置心跳
            // 清除时间
            clearTimeout(this.timeoutObj);
            clearTimeout(this.serverTimeoutObj);
            // 重启心跳
            this.start();
        },
    // 重新连接
    reconnect() {
            if (this.lockReconnect) return
            this.lockReconnect = true;
            //没连接上会一直重连,设置延迟避免请求过多
      this.timeoutnum && clearTimeout(this.timeoutnum);
      this.timeoutnum = setTimeout(() => {
          this.initWebSocket();
          this.lockReconnect = false;
      }, 5000)
    },
    async setOnmessageMessage(event) {
            console.log(event.data, '获得消息');
            this.reset();
            // 自定义全局监听事件
            // window.dispatchEvent(new CustomEvent('onmessageWS', {
            //     detail: {
            //         data: event.data
            //     }
            // }))
            // //发现消息进入    开始处理前端触发逻辑
            // if (event.data === 'success' || event.data === 'heartBath') return
    },
        websocketonopen() {
      //开启心跳
      this.start();
      console.log("WebSocket连接成功!!!"+new Date()+"----"+this.websocket.readyState);
        },
        websocketonerror(e) {                
            console.log("WebSocket连接发生错误" + e);              
        },
        websocketclose(e) {
      this.websocket.close();
      clearTimeout(this.timeoutObj);
            clearTimeout(this.serverTimeoutObj);
      console.log("WebSocket连接关闭");
        },
    websocketsend(messsage) {
        that.websocket.send(messsage)
    },
    closeWebSocket() { // 关闭websocket
        that.websocket.close()
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML CSS前端智慧校园系统网页源码,是指使用HTML和CSS语言编写的前端代码,用于创建一个智慧校园系统的网页。智慧校园系统是利用计算机和互联网技术,为学校提供信息化管理和服务的一种综合性平台。 网页源码主要包括HTML和CSS代码,HTML负责页面结构的搭建,CSS则负责页面样式的设计和布局。 在HTML代码中,可以使用不同的标签来创建网页的各个部分,比如头部导航栏、侧边栏、主要内容区域等。使用标签可以实现页面的划分和布局,方便用户进行浏览和操作。 而CSS样式代码则用于美化页面,通过定义不同的样式属性和值,可以设置网页中的文本字体、颜色、背景、边框等,从而使得网页具有更好的视觉效果。 在具体实现智慧校园系统网页的过程中,可以根据需求进行定制化开发,比如添加学生课程表、成绩查询、教师和学生信息管理等功能。通过将这些功能模块与HTML和CSS代码结合起来,可以实现一个全面而且美观的智慧校园系统网页。 总的来说,HTML CSS前端智慧校园系统网页源码是一个用于创建智慧校园系统网页前端代码,通过HTML和CSS的结合,可以实现网页的布局和样式设计,为学校提供全面且美观的信息化管理和服务。 ### 回答2: HTML CSS前端智慧校园系统网页源码是用HTML和CSS编写的智慧校园系统的前端网页界面代码。该系统是基于Web的校园管理系统,在网页上实现了课程管理、学生成绩查看、作业提交、通知公告等功能。 HTML是用来定义网页结构的标记语言,它提供了丰富的元素和属性,用于构建网页的内容和布局。在智慧校园系统中,HTML被用来创建各种功能模块的网页元素,如导航栏、课程列表、成绩表等。通过使用不同的HTML元素和属性,可以实现不同功能的网页界面。 CSS是用来控制网页样式的样式表语言,它可以定义网页中元素的外观和布局。在智慧校园系统中,CSS被用来设置元素的颜色、字体、大小、边距等样式属性,以及调整元素的位置和布局。通过使用不同的CSS样式规则,可以使网页界面更加美观、易读和易用。 智慧校园系统的前端网页源码会包含HTML和CSS的代码,通过嵌套、引用和调用,将不同的功能模块组合起来,形成完整的网页界面。开发者需要根据系统需求和设计要求,编写对应的HTML和CSS代码,实现各种功能和效果。通过合理使用HTML和CSS的特性和技巧,还可以优化用户体验,提高系统的性能和响应速度。 综上所述,HTML CSS前端智慧校园系统网页源码是基于HTML和CSS的智慧校园系统的前端网页界面代码,通过编写和调整HTML和CSS代码,实现各种功能和样式效果,提供用户友好的界面和良好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值