mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 21:50:28 +08:00 
			
		
		
		
	
		
			
	
	
		
			31 lines
		
	
	
		
			470 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			470 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package rpc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"github.com/TeaOSLab/EdgeAdmin/internal/configs"
							 | 
						||
| 
								 | 
							
									"sync"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var sharedRPC *RPCClient = nil
							 | 
						||
| 
								 | 
							
								var locker = &sync.Mutex{}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func SharedRPC() (*RPCClient, error) {
							 | 
						||
| 
								 | 
							
									locker.Lock()
							 | 
						||
| 
								 | 
							
									defer locker.Unlock()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if sharedRPC != nil {
							 | 
						||
| 
								 | 
							
										return sharedRPC, nil
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									config, err := configs.LoadAPIConfig()
							 | 
						||
| 
								 | 
							
									if err != nil {
							 | 
						||
| 
								 | 
							
										return nil, err
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									client, err := NewRPCClient(config)
							 | 
						||
| 
								 | 
							
									if err != nil {
							 | 
						||
| 
								 | 
							
										return nil, err
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									sharedRPC = client
							 | 
						||
| 
								 | 
							
									return sharedRPC, nil
							 | 
						||
| 
								 | 
							
								}
							 |