websocket

不带订阅的websocket接口

//websocket接口//created里面触发

WebSocketTest()

WebSocketTest()
         {
            if ("WebSocket" in window)
            {
               // 打开一个 web socket
               var ws = new WebSocket("ws://192.168.2.66:8118/risk");
                this.ws=ws
                console.log(ws);
               ws.onopen = function()
               {
                  // Web Socket 已连接上,使用 send() 方法发送数据
               
               };
                
               ws.onmessage = function (evt) 
               { 
                  var received_msg = evt.data;
                  console.log(evt);
               };
                
               ws.onclose = function()
               { 
                  // 关闭 websocket
            
               };
            }
            
            else
            {
               // 浏览器不支持 WebSocket
               alert("您的浏览器不支持 WebSocket!");
            }
         }
  },

订阅websocket接口

//websocket接口//created里面触发
    this.WebSocketTest();

 methods: {
    //websocket接口
    initWebSocket() {
      this.connection();
      let that = this;
      // 断开重连机制,尝试发送消息,捕获异常发生时重连
      this.timer = setInterval(() => {
        try {
          that.stompClient.send("test");
        } catch (err) {
          //console.log("断线了: " + err);
          that.connection();
        }
      }, 5000);
    },
    connection() {
      // 建立连接对象
      let socket = new SockJS("http://vtoxbase.dev.internal.virtueit.net:81/v0-snapshot/gateway/vtoxbase-show///wsjs");
      // 获取STOMP子协议的客户端对象
      this.stompClient = Stomp.over(socket);
      let headers = {
        Authorization: "",
      };
      // 向服务器发起websocket连接
      this.stompClient.connect(
        headers,
        () => {
          this.stompClient.subscribe(
            `/city/event/broadcast`,//订阅信息
            (res) => {
              // 订阅服务端提供的某个topic
              this.show++
              let data=JSON.parse(res.body).data[JSON.parse(res.body).data.length-1]  //新增的一条数据
              document.getElementsByClassName(
                "ani2"
              )[0].children[0].children[0].children[1].innerText = data.eventName;
              document.getElementsByClassName(
                "ani2"
              )[0].children[0].children[1].innerText = data.time;
              document.getElementsByClassName("ani2")[0].children[1].innerText =
                data.description;
                document.getElementsByClassName('ani2')[0].style.visibility="inherit"
              //console.log(data); // msg.body存放的是服务端发送给我们的信息
            },
            headers
          );
        },
        (err) => {
          // 连接发生错误时的处理函数
          console.log("失败");
          console.log(err);
        }
      );
    }, //连接 后台
    disconnect() {
      if (this.stompClient) {
        this.stompClient.disconnect();
      }
    }, // 断开连接
  },
  beforeDestroy() {
    // 页面离开时断开连接,清除定时器
    this.disconnect();
  },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值