<input type="text" v-model="inputText"/>
<span @click="send">发送</span>
data () {
  return {
    inputText: '', // 获取输入框内容
    websock: '' // websocket会话
  };
},

 

methods: {
  send () {
   this.readyChat(this.inputText);
  },
  /* webSocket会话 */
  /* 会话过程中实际调用的函数 */
  readyChat (data) {
    let This = this;
    if (this.websock.readyState === 1) { // this.websock.readyState = 1 表示连接成功,可以立即发送信息
      this.websocketSend(data);
    } else if (this.websock.readyState === 0) { // 表示正在连接,设置300ms后发送信息
      setTimeout(function () {
        This.websocketSend(data);
      }, 300);
    } else { // 连接未创建或者创建失败,则重新创建连接,并设置500ms后发送信息
      this.websochetInit();
      setTimeout(function () {
        This.websocketSend(data);
      }, 500);
    }
  },
  /* 初始化websochet */
  websochetInit () {
    this.websock = new WebSocket('ws://*************');
    this.websock.onmessage = this.websocketMessage;
  },
  /* websochet发送信息 */
  websocketSend (data) {
    this.websock.send(JSON.stringify(data));
  },
  /* websochet接收服务器返回的信息 */
  websocketMessage (e) {
    console.log(e);
  }
}

 

Logo

前往低代码交流专区

更多推荐