VUE WebSocket

<script>
var ws = new WebSocket("wss://xxxx.xxxxx.cn:8080");
export default {
     
  mounted() {
     
    this.socket();
  },
  methods: {
     
    socket() {
     
      /**
       * 与GatewayWorker建立websocket连接,域名和端口改为你实际的域名端口,
       * 其中端口为Gateway端口,即start_gateway.php指定的端口。
       * start_gateway.php 中需要指定websocket协议,像这样
       * $gateway = new Gateway(websocket://0.0.0.0:7272);
       */
      // var ws = new WebSocket("wss://"+document.domain+":8282");
      //这个是在线地址不用改
      ws.onopen = function() {
     
        // Web Socket 已连接上,使用 send() 方法发送数据
        // member_id 这个是用户的ID。需要进页面获取到,然后发送到服务端绑定
        var data = `{"type":"member_bind","member_id":${
       _this.userID}}`;
        // var data = '{"type":"add_timer","group_id":1,"pack_type":2}';
        ws.send(data);
      };
      // 服务端主动推送消息时会触发这里的onmessage
      ws.onmessage = function(e) {
     
        // json数据转换成js对象
        var data = JSON.parse(e.data);
        var type = data.type || "";
        switch (type) {
     
          case "member_bind":
            break;
          //这里是客服回信息的接受消息的地方
          case "send_to_member":
            console.log(data);
            break;
          default:
            console.log(e.data);
        }
      };
      var t2 = window.setInterval(function() {
     
        // var content =
        //   parseInt(Math.random() * 5 + 1, 10) * Math.random() * Math.random();
        //发送消息给客服 content 是内容
        ws.send('{"type":"member_send_message","content":"'content + '"}'
        //每十秒内必须发送一次ping
        ws.send('{"type":"ping"}');
      }, 9000);
      ws.onclose = function() {
     
        console.log("链接关闭");
      };
    }
  }
};
</script>

你可能感兴趣的:(vue,websocket,websocket,socket,vue)