|  | @@ -14,6 +14,7 @@ const clientError = 400;
 | 
	
		
			
			| 14 | 14 |  class Client {
 | 
	
		
			
			| 15 | 15 |    private _maxPayload: number;
 | 
	
		
			
			| 16 | 16 |    private _enableLogger: boolean;
 | 
	
		
			
			|  | 17 | +  private static instance: Client;
 | 
	
		
			
			| 17 | 18 |    private listeners: Map<number, (data: WebSocketResp) => void>;
 | 
	
		
			
			| 18 | 19 |    private requestHeader: string;
 | 
	
		
			
			| 19 | 20 |    private responseHeader: string;
 | 
	
	
		
			
			|  | @@ -28,7 +29,7 @@ class Client {
 | 
	
		
			
			| 28 | 29 |     * @param url websocket链接地址
 | 
	
		
			
			| 29 | 30 |     * @param readyStateCallback 链接状态回调,可以处理onOpen、onClose、onError
 | 
	
		
			
			| 30 | 31 |     */
 | 
	
		
			
			| 31 |  | -  public constructor(url: string, readyStateCallback: ReadyStateCallback) {
 | 
	
		
			
			|  | 32 | +  private constructor(url: string, readyStateCallback: ReadyStateCallback) {
 | 
	
		
			
			| 32 | 33 |      this.listeners = new Map<number, (data: WebSocketResp) => void>();
 | 
	
		
			
			| 33 | 34 |      this.requestHeader = '';
 | 
	
		
			
			| 34 | 35 |      this.requestHeader = '';
 | 
	
	
		
			
			|  | @@ -40,6 +41,19 @@ class Client {
 | 
	
		
			
			| 40 | 41 |      this.socket = this.connect();
 | 
	
		
			
			| 41 | 42 |    }
 | 
	
		
			
			| 42 | 43 |  
 | 
	
		
			
			|  | 44 | +  /**
 | 
	
		
			
			|  | 45 | +   * 通过单例模式获取客户端链接
 | 
	
		
			
			|  | 46 | +   * @param url websocket链接地址
 | 
	
		
			
			|  | 47 | +   * @param readyStateCallback 链接状态回调,可以处理onOpen、onClose、onError
 | 
	
		
			
			|  | 48 | +   */
 | 
	
		
			
			|  | 49 | +  public static getInstance(url: string, callback: ReadyStateCallback): Client {
 | 
	
		
			
			|  | 50 | +    if (!Client.instance) {
 | 
	
		
			
			|  | 51 | +      Client.instance = new Client(url, callback);
 | 
	
		
			
			|  | 52 | +    }
 | 
	
		
			
			|  | 53 | +
 | 
	
		
			
			|  | 54 | +    return Client.instance;
 | 
	
		
			
			|  | 55 | +  }
 | 
	
		
			
			|  | 56 | +
 | 
	
		
			
			| 43 | 57 |    /**
 | 
	
		
			
			| 44 | 58 |     * 设置可以处理的数据包上限
 | 
	
		
			
			| 45 | 59 |     * @param maxPayload 最多可以处理的数据包大小
 | 
	
	
		
			
			|  | @@ -417,14 +431,4 @@ class Client {
 | 
	
		
			
			| 417 | 431 |    }
 | 
	
		
			
			| 418 | 432 |  }
 | 
	
		
			
			| 419 | 433 |  
 | 
	
		
			
			| 420 |  | -let client: Client;
 | 
	
		
			
			| 421 |  | -
 | 
	
		
			
			| 422 |  | -function getClient(url: string, callback: ReadyStateCallback): Client {
 | 
	
		
			
			| 423 |  | -  if (!client) {
 | 
	
		
			
			| 424 |  | -    client = new Client(url, callback);
 | 
	
		
			
			| 425 |  | -  }
 | 
	
		
			
			| 426 |  | -
 | 
	
		
			
			| 427 |  | -  return client;
 | 
	
		
			
			| 428 |  | -}
 | 
	
		
			
			| 429 |  | -
 | 
	
		
			
			| 430 |  | -export { Client, getClient };
 | 
	
		
			
			|  | 434 | +export { Client };
 |