WebSocket 싱글톤 모드의 UniApp 간단한 예

UniApp의 간단한 WebSocket 싱글톤 모드 연결 도구 클래스의 예:

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;

위에서 언급했듯이 이 싱글톤 모드의 도구 클래스는 ES6 클래스 구문을 사용하여 WebSocketUtil 클래스를 정의합니다. 클래스가 인스턴스화되면 인스턴스 속성이 있는지 여부에 따라 WebSocket 인스턴스를 인스턴스화할지 여부를 결정합니다. 동시에 getInstance, send 및 close 메서드를 제공하여 WebSocket 인스턴스를 얻고 메시지를 보내고 연결을 닫습니다.

UniApp에서 이 WebSocket 도구 클래스를 사용하는 것은 매우 간단합니다. 이 도구 클래스를 가져온 다음 서버의 Websocket URL을 생성자에 전달하면 전역적으로 고유한 WebSocket 연결 인스턴스를 얻을 수 있습니다.

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

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

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

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

위의 코드에서 먼저 생성자를 통해 한 번 인스턴스화한 다음 getInstance 메서드를 통해 클래스의 인스턴스를 가져오고 send 메서드를 호출하여 메시지를 보내고 close 메서드를 호출하여 연결을 닫습니다. 싱글톤 모드로 인해 이 방법은 연결을 한 번만 생성하며 응용 프로그램에서 전역적으로 고유함을 보장합니다.

추천

출처blog.csdn.net/m0_37577465/article/details/131328985