vue实际项目接入websocket

在实际vue项目中,我有一个接入服务端websocket的需求
调试了一段时间终于成功了,记录一下

1.配置ws

    socket() { //socket()连接方法
      let wssString = window.location.href.indexOf("/a") === -1 ? "wss:测试地址/ws" : "wss:正式地址/ws"
      let ws = new WebSocket(wssString);
      this.ws = Stomp.over(ws);
      this.ws.heartbeat.outgoing = 1;
      this.ws.heartbeat.incoming = 0;
      this.ws.connect("root", "root", this.onConnected, this.onFailed);
    },

    onConnected() {  //连接池
      //订阅频道
      //非正式版本下,加test-
      const topic =
        "后端给的地址" +
        (window.location.href.indexOf("/a") === -1 ? "test-" : "") +
        localData("get", "getUserInfo").id;
      this.ws.subscribe(topic, this.responseCallback, this.onFailed); //失败需要重启
    },
    onFailed(frame) { // 失败后两秒重启
      setTimeout(() => {
        this.socket();
      }, 2000);
    },

2.配置响应函数

    responseCallback(frame) {
      //接收消息处理
      if (JSON.parse(frame.body)) {
      //你实际的操作
      }
    },

3.在mounted钩子中启动ws

  mounted() {
    setTimeout(() => {
      this.socket();
    }, 1000);
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值