/// <summary> /// 断开连接处理器 /// </summary> /// <returns></returns> private async Task InactiveHandler() { if (Interlocked.CompareExchange(ref isInactiveHandle, 1, 0) == 1) { return; } if (Status == ClientStatus.Closed || Status == ClientStatus.Connecting) { return; } Status = ClientStatus.PassiveClosed; await BootstrapManager.CloseAsync(channelName); logger.LogDebug($"Client inactive: close connect. Host={Host}, Port={Port}, LocalHost={LocalHost}, LocalPort={LocalPort}"); if (OnPassiveClosed != null) { await Task.Run(async() => { await OnPassiveClosed(this); isInactiveHandle = 0; }); } else { isInactiveHandle = 0; } }
/// <summary> /// 关闭与服务端的连接 /// </summary> /// <returns></returns> public async Task CloseAsync() { Status = ClientStatus.Closed; await BootstrapManager.CloseAsync(channelName); logger.LogDebug($"Client closed. Host={Host}, Port={Port}, LocalHost={LocalHost}, LocalPort={LocalPort}"); }