Ejemplo simple de UniApp del modo singleton de WebSocket

Ejemplo de la clase de herramienta de conexión de modo singleton WebSocket simple de UniApp:

class WebSocketUtil {
    
    
  constructor(url) {
    
    
    if (!WebSocketUtil.instance) {
    
    
      const ws = new WebSocket(url);
      WebSocketUtil.instance = ws;
    }
    return WebSocketUtil.instance;
  }

  static getInstance() {
    
    
    return WebSocketUtil.instance;
  }

  static send(msg) {
    
    
    if (WebSocketUtil.instance.readyState === WebSocket.OPEN) {
    
    
      WebSocketUtil.instance.send(msg);
    } else {
    
    
      console.error('WebSocket未连接');
    }
  }

  static close() {
    
    
    WebSocketUtil.instance.close();
    WebSocketUtil.instance = null;
  }
}

export default WebSocketUtil;

Como se mencionó anteriormente, la clase de herramienta de este modo singleton usa la sintaxis de clase ES6 para definir la clase WebSocketUtil. Cuando se crea una instancia de la clase, decidirá si instanciar la instancia de WebSocket de acuerdo con si hay un atributo de instancia. Al mismo tiempo, también proporciona métodos getInstance, send y close para obtener instancias de WebSocket, enviar mensajes y cerrar conexiones.

Es muy simple usar esta clase de herramienta WebSocket en UniApp. Solo necesita importar esta clase de herramienta y luego pasar la URL de WebSocket del servidor al constructor para obtener una instancia de conexión WebSocket única a nivel mundial.

import WebSocketUtil from 'path/to/WebSocketUtil.js';

const url = 'ws://localhost:3000';
const ws = new WebSocketUtil(url);

//发送消息
ws.send('Hello World!');

//关闭连接
ws.close();

En el código anterior, primero ejecútelo una vez a través del constructor, luego obtenga la instancia de la clase a través del método getInstance y llame al método de envío para enviar un mensaje y al método de cierre para cerrar la conexión. Debido al modo singleton, este método solo creará una conexión una vez y se garantiza que será globalmente único en la aplicación.

Supongo que te gusta

Origin blog.csdn.net/m0_37577465/article/details/131328985
Recomendado
Clasificación