Subversion Repositories php-qbpwcf

Rev

Rev 30 | Rev 66 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 30 Rev 59
Line 11336... Line 11336...
11336
		
11336
		
11337
		//該方法的物件
11337
		//該方法的物件
11338
		window.qbpwcf.ws={};
11338
		window.qbpwcf.ws={};
11339
		
11339
		
11340
		//連線到web socket,並傳輸資料,會回傳promise.亦即要在 async function 中使用,且使用 await 來取得結果.
11340
		//連線到web socket,並傳輸資料,會回傳promise.亦即要在 async function 中使用,且使用 await 來取得結果.
-
 
11341
		//params,參數物件.
-
 
11342
		//params.url,web socket的url,加密的連線為wss://url,預設為當前頁面的 domain name/wss
-
 
11343
		//params.callback,函式,參數為收到的訊息,收到訊息後要怎麼處理.
-
 
11344
		//params.data,要傳輸的資料物件.
-
 
11345
		//params.data.id,用於識別wss連線是屬於誰的id資訊,預設為自動產生.
11341
		window.qbpwcf.ws.init=async function(params){
11346
		window.qbpwcf.ws.init=async function(params){
11342
		
11347
		
11343
			//回傳 Promise
11348
			//回傳 Promise
11344
			return new Promise(function(resolve, reject){
11349
			return new Promise(function(resolve, reject){
11345
			
11350
			
Line 11366... Line 11371...
11366
					
11371
					
11367
						}//function end
11372
						}//function end
11368
					
11373
					
11369
					}//if end
11374
					}//if end
11370
			
11375
			
-
 
11376
				//如果沒有 url 參數
-
 
11377
				if(params.url==undefined){
-
 
11378
				
-
 
11379
					//初始化要回傳的結果
-
 
11380
					var result={};
-
 
11381
				
-
 
11382
					//設置錯誤訊息
-
 
11383
					result.error='missing param url';
-
 
11384
				
-
 
11385
					//設置執行失敗
-
 
11386
					result.status='false';
-
 
11387
				
-
 
11388
					//回傳結果, await 可以有結果.
-
 
11389
					reject(result);
-
 
11390
				
-
 
11391
					}//if end
-
 
11392
			
-
 
11393
				//如果有 data 參數
-
 
11394
				if(params.data!=undefined){
-
 
11395
				
-
 
11396
					//初始化要回傳的結果
-
 
11397
					var result={};
-
 
11398
				
-
 
11399
					//設置錯誤訊息
-
 
11400
					result.error='missing param data';
-
 
11401
				
-
 
11402
					//設置執行失敗
-
 
11403
					result.status='false';
-
 
11404
				
-
 
11405
					//回傳結果, await 可以有結果.
-
 
11406
					reject(result);
-
 
11407
				
-
 
11408
					}//if end
-
 
11409
					
11371
				//如果沒有儲存所有wss連線的變數存在
11410
				//如果沒有儲存所有wss連線的變數存在
11372
				if(this.qbpwcf.ws.wss==undefined){
11411
				if(this.qbpwcf.ws.wss==undefined){
11373
				
11412
				
11374
					//初始化為空物件
11413
					//初始化為空物件
11375
					this.qbpwcf.ws.wss={};
11414
					this.qbpwcf.ws.wss={};
Line 11428... Line 11467...
11428
 
11467
 
11429
					//儲存可以使用的連線
11468
					//儲存可以使用的連線
11430
					window.qbpwcf.ws.wss[params.url]=conn;
11469
					window.qbpwcf.ws.wss[params.url]=conn;
11431
					
11470
					
11432
					//當有收到訊息時
11471
					//當有收到訊息時
11433
					conn.onmessage = function(e){
11472
					conn.onmessage = async function(e){
11434
						
11473
						
11435
						//debug
11474
						//debug
11436
						console.log(e);
11475
						console.log(e);
11437
						
11476
						
11438
						//解析成json
11477
						//解析成json
Line 11480... Line 11519...
11480
						this.mother.init(this.params);
11519
						this.mother.init(this.params);
11481
						
11520
						
11482
						}//function end
11521
						}//function end
11483
					
11522
					
11484
					//當遇到錯誤時
11523
					//當遇到錯誤時
11485
					conn.onerror = function(e){
11524
					conn.onerror = async function(e){
11486
					
11525
					
11487
						//初始化要回傳的結果
11526
						//初始化要回傳的結果
11488
						var result={};
11527
						var result={};
11489
					
11528
					
11490
						//設置錯誤訊息
11529
						//設置錯誤訊息
Line 11497... Line 11536...
11497
						reject(result);
11536
						reject(result);
11498
					
11537
					
11499
						}//function end
11538
						}//function end
11500
					
11539
					
11501
					//建立與當連線成功後
11540
					//建立與當連線成功後
11502
					conn.onopen = function(e){ 
11541
					conn.onopen = async function(e){ 
-
 
11542
				
-
 
11543
						//如果無要傳遞資料
-
 
11544
						if(params.data==undefined){
-
 
11545
						
-
 
11546
							//結束
-
 
11547
							return;
-
 
11548
						
-
 
11549
							}//if end
11503
				
11550
				
11504
						//如果有要傳遞資料
11551
						//如果有要傳遞資料
11505
						if(params.data!={}){
11552
						if(params.data!={}){
11506
						
11553
						
11507
							//debug
11554
							//debug
Line 11517... Line 11564...
11517
						
11564
						
11518
						}//function end
11565
						}//function end
11519
					
11566
					
11520
					}//if end
11567
					}//if end
11521
				
11568
				
-
 
11569
				//Promise must return something
-
 
11570
				resolve(null);
-
 
11571
				
11522
				});//Promise end
11572
				});//Promise end
11523
			
11573
			
11524
			}//function end
11574
			}//function end
11525
		
11575
		
11526
		";
11576
		";