Registrar un proceso de uso de websocket

        Registre un proceso de uso de websocket. El problema que hay que resolver es: la empresa necesita exportar unos 200.000 datos. En primer lugar, el tiempo de solicitud para exportar tantos datos es demasiado largo, lo que puede hacer que los usuarios sientan que la red está atascada y el tamaño de la descarga es demasiado grande. Calculé que debería ser de dos o tres gigabytes, por lo que la descarga El tiempo es demasiado largo y Excel no puede abrir tantos archivos.

        La solución (no particularmente buena, la solicitud debe estar fragmentada, pero el backend solo proporciona una cantidad limitada de soporte técnico y esta basura nunca se ha hecho): use websocket para establecer un enlace largo, solicite recursos directamente en el navegador y el backend Coloque el archivo de Excel directamente en el navegador y coloque varios archivos de Excel para que la fragmentación del archivo se pueda realizar indirectamente.

        Proceso de uso:

  created() {
    this.initWebSocket();
  },
  destroyed() {
    // 组件销毁时关闭
    this.websocketclose();
  },
  data() {
    return {
      websock: null,
    };
  },
  methods: {
    initWebSocket() {
      //初始化weosocket
      const wsuri = "ws://172.16:8099"; // 地址更改为需要的地址 : 端口号如果nginx 有做配置可以不加
      this.websock = new WebSocket(wsuri); // 创建
      this.websock.onmessage = this.websocketonmessage;
      this.websock.onopen = this.websocketonopen;
      this.websock.onerror = this.websocketonerror;
      this.websock.onclose = this.websocketclose;
    },
    websocketonopen() {
      //连接建立之后执行send方法发送数据
      this.websocketsend();
    },
    websocketonerror() {
      //连接建立失败重连
      this.initWebSocket();
    },
    websocketonmessage(e) {
      //数据接收
      const redata = JSON.parse(e.data);
      let a = document.createElement("a");
      a.href = VUE_APP_BASE + redata.data;  // 此处使用公司阿里云服务
      a.click();
    },
    websocketsend() {
      //数据发送
      this.websock.send(data); // 此处添加需要发送的数据
    },
    websocketclose(e) {
      console.log(e, '建立失败')
    },
  },

Supongo que te gusta

Origin blog.csdn.net/z_langjitianya/article/details/131189894
Recomendado
Clasificación