| 
				
			 | 
			
			
				@@ -30,7 +30,7 @@ class Client { 
			 | 
		
	
		
			
			| 
				30
			 | 
			
				30
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				31
			 | 
			
				31
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				32
			 | 
			
				32
			 | 
			
			
				   // 向服务端发送ping包保持长连接 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				
			 | 
			
			
				-  ping(param: any, requestCallback: RequestCallback) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				33
			 | 
			
			
				+  public ping(param: any, requestCallback: RequestCallback) { 
			 | 
		
	
		
			
			| 
				34
			 | 
			
				34
			 | 
			
			
				     if (this.socket.readyState !== this.socket.OPEN) { 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				35
			 | 
			
			
				       throw new Error('asyncSend: connection refuse'); 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				36
			 | 
			
			
				     } 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -58,25 +58,13 @@ class Client { 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				58
			 | 
			
			
				     ); 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				59
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				60
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				61
			 | 
			
				
			 | 
			
			
				-  send(data: ArrayBuffer) { 
			 | 
		
	
		
			
			| 
				62
			 | 
			
				
			 | 
			
			
				-    if (this.socket.readyState !== this.socket.OPEN) { 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				
			 | 
			
			
				-      console.error('WebSocket is already in CLOSING or CLOSED state.'); 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				
			 | 
			
			
				-      return; 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				66
			 | 
			
				
			 | 
			
			
				-    try { 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				
			 | 
			
			
				-      this.socket.send(data); 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				
			 | 
			
			
				-    } catch (e) { 
			 | 
		
	
		
			
			| 
				69
			 | 
			
				
			 | 
			
			
				-      console.log('send data error', e); 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				71
			 | 
			
				
			 | 
			
			
				-  } 
			 | 
		
	
		
			
			| 
				72
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				73
			 | 
			
				61
			 | 
			
			
				   /** 
			 | 
		
	
		
			
			| 
				74
			 | 
			
				62
			 | 
			
			
				    * asyncSend 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				63
			 | 
			
			
				    * @param {*} operator 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				64
			 | 
			
			
				    * @param {*} param 
			 | 
		
	
		
			
			| 
				77
			 | 
			
				65
			 | 
			
			
				    * @param {*} callback 仅此次有效的callback 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				66
			 | 
			
			
				    */ 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				
			 | 
			
			
				-  asyncSend(operator: string, param: any, callback: RequestCallback) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+  public asyncSend(operator: string, param: any, callback: RequestCallback) { 
			 | 
		
	
		
			
			| 
				80
			 | 
			
				68
			 | 
			
			
				     console.info('websocket send data', operator, this.requestHeader, param); 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				69
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				82
			 | 
			
				70
			 | 
			
			
				     if (this.socket.readyState !== this.socket.OPEN) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -113,32 +101,39 @@ class Client { 
			 | 
		
	
		
			
			| 
				113
			 | 
			
				101
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				114
			 | 
			
				102
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				115
			 | 
			
				103
			 | 
			
			
				   // 同步请求服务端数据 
			 | 
		
	
		
			
			| 
				116
			 | 
			
				
			 | 
			
			
				-  async syncSend(operator: string, param: any, callback: RequestCallback) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				104
			 | 
			
			
				+  public async syncSend( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				105
			 | 
			
			
				+    operator: string, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				106
			 | 
			
			
				+    param: any, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				107
			 | 
			
			
				+    callback: RequestCallback, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				108
			 | 
			
			
				+  ) { 
			 | 
		
	
		
			
			| 
				117
			 | 
			
				109
			 | 
			
			
				     await this.asyncSend(operator, param, callback); 
			 | 
		
	
		
			
			| 
				118
			 | 
			
				110
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				119
			 | 
			
				111
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				120
			 | 
			
				112
			 | 
			
			
				   // 添加消息监听 
			 | 
		
	
		
			
			| 
				121
			 | 
			
				
			 | 
			
			
				-  addMessageListener(operator: string, listener: (data: string) => void) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				113
			 | 
			
			
				+  public addMessageListener( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				114
			 | 
			
			
				+    operator: string, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				115
			 | 
			
			
				+    listener: (data: string) => void, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				116
			 | 
			
			
				+  ) { 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				117
			 | 
			
			
				     this.listeners[Utils.crc32(operator)] = listener; 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				118
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				124
			 | 
			
				119
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				125
			 | 
			
				120
			 | 
			
			
				   // 移除消息监听 
			 | 
		
	
		
			
			| 
				126
			 | 
			
				
			 | 
			
			
				-  removeMessageListener(operator: string) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				121
			 | 
			
			
				+  public removeMessageListener(operator: string) { 
			 | 
		
	
		
			
			| 
				127
			 | 
			
				122
			 | 
			
			
				     delete this.listeners[Utils.crc32(operator)]; 
			 | 
		
	
		
			
			| 
				128
			 | 
			
				123
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				129
			 | 
			
				124
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				130
			 | 
			
				125
			 | 
			
			
				   // 获取socket的链接状态 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				
			 | 
			
			
				-  getReadyState() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				126
			 | 
			
			
				+  public getReadyState() { 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				127
			 | 
			
			
				     return this.socket.readyState; 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				128
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				129
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				135
			 | 
			
				130
			 | 
			
			
				   // 设置单个请求能够处理的最大字节数 
			 | 
		
	
		
			
			| 
				136
			 | 
			
				
			 | 
			
			
				-  setMaxPayload(maxPayload) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				131
			 | 
			
			
				+  public setMaxPayload(maxPayload) { 
			 | 
		
	
		
			
			| 
				137
			 | 
			
				132
			 | 
			
			
				     this.maxPayload = maxPayload; 
			 | 
		
	
		
			
			| 
				138
			 | 
			
				133
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				134
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				140
			 | 
			
				135
			 | 
			
			
				   // 设置请求属性 
			 | 
		
	
		
			
			| 
				141
			 | 
			
				
			 | 
			
			
				-  setRequestProperty(key: string, value: string) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				136
			 | 
			
			
				+  public setRequestProperty(key: string, value: string) { 
			 | 
		
	
		
			
			| 
				142
			 | 
			
				137
			 | 
			
			
				     let v = this.getRequestProperty(key); 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				138
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				144
			 | 
			
				139
			 | 
			
			
				     this.requestHeader = this.requestHeader.replace(key + '=' + v + ';', ''); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -146,7 +141,7 @@ class Client { 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				141
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				147
			 | 
			
				142
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				148
			 | 
			
				143
			 | 
			
			
				   // 获取请求属性 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				
			 | 
			
			
				-  getRequestProperty(key: string): string { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				144
			 | 
			
			
				+  public getRequestProperty(key: string): string { 
			 | 
		
	
		
			
			| 
				150
			 | 
			
				145
			 | 
			
			
				     if (this.requestHeader !== undefined) { 
			 | 
		
	
		
			
			| 
				151
			 | 
			
				146
			 | 
			
			
				       let values = this.requestHeader.split(';'); 
			 | 
		
	
		
			
			| 
				152
			 | 
			
				147
			 | 
			
			
				       for (let index in values) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -161,7 +156,7 @@ class Client { 
			 | 
		
	
		
			
			| 
				161
			 | 
			
				156
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				162
			 | 
			
				157
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				163
			 | 
			
				158
			 | 
			
			
				   // 设置Response属性 
			 | 
		
	
		
			
			| 
				164
			 | 
			
				
			 | 
			
			
				-  setResponseProperty(key: string, value: string) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				159
			 | 
			
			
				+  public setResponseProperty(key: string, value: string) { 
			 | 
		
	
		
			
			| 
				165
			 | 
			
				160
			 | 
			
			
				     let v = this.getResponseProperty(key); 
			 | 
		
	
		
			
			| 
				166
			 | 
			
				161
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				167
			 | 
			
				162
			 | 
			
			
				     this.responseHeader = this.responseHeader.replace(key + '=' + v + ';', ''); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -169,7 +164,7 @@ class Client { 
			 | 
		
	
		
			
			| 
				169
			 | 
			
				164
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				170
			 | 
			
				165
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				171
			 | 
			
				166
			 | 
			
			
				   // 获取响应属性 
			 | 
		
	
		
			
			| 
				172
			 | 
			
				
			 | 
			
			
				-  getResponseProperty(key: string): string { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				167
			 | 
			
			
				+  public getResponseProperty(key: string): string { 
			 | 
		
	
		
			
			| 
				173
			 | 
			
				168
			 | 
			
			
				     if (this.responseHeader !== undefined) { 
			 | 
		
	
		
			
			| 
				174
			 | 
			
				169
			 | 
			
			
				       let values = this.responseHeader.split(';'); 
			 | 
		
	
		
			
			| 
				175
			 | 
			
				170
			 | 
			
			
				       for (let index in values) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -184,7 +179,7 @@ class Client { 
			 | 
		
	
		
			
			| 
				184
			 | 
			
				179
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				185
			 | 
			
				180
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				186
			 | 
			
				181
			 | 
			
			
				   // 创建连接 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				
			 | 
			
			
				-  connect(): WebSocket { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				182
			 | 
			
			
				+  private connect(): WebSocket { 
			 | 
		
	
		
			
			| 
				188
			 | 
			
				183
			 | 
			
			
				     const readyStateCallback = this.readyStateCallback; 
			 | 
		
	
		
			
			| 
				189
			 | 
			
				184
			 | 
			
			
				     let ws = new WebSocket(this.url); 
			 | 
		
	
		
			
			| 
				190
			 | 
			
				185
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -246,7 +241,7 @@ class Client { 
			 | 
		
	
		
			
			| 
				246
			 | 
			
				241
			 | 
			
			
				     return ws; 
			 | 
		
	
		
			
			| 
				247
			 | 
			
				242
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				248
			 | 
			
				243
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				249
			 | 
			
				
			 | 
			
			
				-  reconnect() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				244
			 | 
			
			
				+  private reconnect() { 
			 | 
		
	
		
			
			| 
				250
			 | 
			
				245
			 | 
			
			
				     if (!this.reconnectLock) { 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				246
			 | 
			
			
				       this.reconnectLock = true; 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				247
			 | 
			
			
				       console.info('websocket reconnect in ' + this.reconnectTimes + 's'); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -258,6 +253,18 @@ class Client { 
			 | 
		
	
		
			
			| 
				258
			 | 
			
				253
			 | 
			
			
				       }, this.reconnectTimes * 1000); 
			 | 
		
	
		
			
			| 
				259
			 | 
			
				254
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				260
			 | 
			
				255
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				256
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				257
			 | 
			
			
				+  private send(data: ArrayBuffer) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				258
			 | 
			
			
				+    if (this.socket.readyState !== this.socket.OPEN) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				259
			 | 
			
			
				+      console.error('WebSocket is already in CLOSING or CLOSED state.'); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				260
			 | 
			
			
				+      return; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				261
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				262
			 | 
			
			
				+    try { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				263
			 | 
			
			
				+      this.socket.send(data); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				264
			 | 
			
			
				+    } catch (e) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				265
			 | 
			
			
				+      console.log('send data error', e); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				266
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				267
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				261
			 | 
			
				268
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				262
			 | 
			
				269
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				263
			 | 
			
				270
			 | 
			
			
				 export { Client, MAX_PAYLOAD }; 
			 |