| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- using Microsoft.AspNetCore.SignalR.Client;
 
- using RTCommunicatorBase;
 
- using System.Threading.Tasks;
 
- namespace RTCommunicatorSingalR;
 
- public class RTCommunicator_SingalR : IRTMini8Sender
 
- {
 
-     private HubConnection _hubConnection;
 
-     private IRTMini8Provider _provider;
 
-     private string _ipAddress;
 
-     private int _port; 
 
-     bool IRTMini8Sender.Initialize(IRTMini8Provider provider)
 
-     {
 
-         if (provider is null)
 
-             return false;
 
-         if (this._provider is not null)
 
-             return false;
 
-         this._provider = provider;
 
-         return true;
 
-     }
 
-     bool IRTMini8Sender.StartService(string ip, int port)
 
-     {
 
-         if (_provider is null)
 
-             return false;
 
-         if (this._hubConnection is not null)
 
-             return false;
 
-         if (string.IsNullOrEmpty(ip) || port < 5000 || port > ushort.MaxValue)
 
-             return false;
 
-         HubConnection tempHub = new HubConnectionBuilder().WithUrl($"http://{ip}:{port}/RTHub").WithAutomaticReconnect().Build();
 
-         this._ipAddress = ip;
 
-         this._port = port;
 
-         //注册断线及重连事件
 
-         tempHub.Closed += Hub_Closed; ;
 
-         tempHub.Reconnected += Hub_Reconnected;
 
-         tempHub.Reconnecting += Hub_Reconnecting;
 
-         try
 
-         {
 
-             tempHub.StartAsync().Wait();
 
-             this._provider?.Connected(this._ipAddress, this._port);
 
-         }
 
-         catch
 
-         {
 
-             return false;
 
-         }
 
-         this._hubConnection = tempHub;
 
-         return true;
 
-     }
 
-     bool IRTMini8Sender.SelectConfigFile(string name)
 
-     {
 
-         try
 
-         {
 
-             return this._hubConnection.InvokeAsync<bool>("SelectConfigFile", name).Result;
 
-         }
 
-         catch
 
-         {
 
-             return false;
 
-         }
 
-     }
 
-     bool IRTMini8Sender.CloseService()
 
-     {
 
-         this._hubConnection?.DisposeAsync();
 
-         this._hubConnection = null;
 
-         this._provider = null;
 
-         return true;
 
-     }
 
-     private Task Hub_Reconnecting(System.Exception arg)
 
-     {
 
-         this._provider?.DisConnected(this._ipAddress, this._port);
 
-         return Task.CompletedTask;
 
-     }
 
-     private Task Hub_Reconnected(string arg)
 
-     {
 
-         this._provider?.Connected(this._ipAddress, this._port);
 
-         return Task.CompletedTask;
 
-     }
 
-     private Task Hub_Closed(System.Exception arg)
 
-     {
 
-         this._provider?.DisConnected(this._ipAddress, this._port);
 
-         return Task.CompletedTask;
 
-     }
 
- }
 
 
  |