public void ClientOnlineTest_Online_CameInTeFuture() { var clientOnline = new ClientOnline(new MockedCurrentTime(new DateTime(2020, 5, 23, 2, 25, 0))); var result = clientOnline.IsClientOnline(new DateTime(2020, 5, 23, 2, 26, 0)); Assert.AreEqual(result, true); }
public void ClientOnlineTest_Offline_LateReceive() { var clientOnline = new ClientOnline(new MockedCurrentTime(new DateTime(2020, 5, 23, 2, 25, 0))); var result = clientOnline.IsClientOnline(new DateTime(2020, 5, 23, 2, 23, 0)); Assert.AreEqual(result, false); }
private SimpleHybirdLock lock_list; // 列表锁 private void AddClient(DeviceState device) { lock_list.Enter( ); list.Add(device); lock_list.Leave( ); ClientOnline?.Invoke(device); }
private void TcpStateUpLine(AppSession state) { lockSessions.Enter( ); appSessions.Add(state); lockSessions.Leave( ); // 提示上线 ClientOnline?.Invoke(state); AllClientsStatusChange?.Invoke(ClientCount); // 是否保存上线信息 if (IsSaveLogClientLineChange) { LogNet?.WriteInfo(ToString( ), $"[{state.IpEndPoint}] Name:{ state?.LoginAlias } { StringResources.NetClientOnline }"); } }
private void TcpStateUpLine(AppSession state) { HybirdLockSockets.Enter( ); All_sockets_connect.Add(state); HybirdLockSockets.Leave( ); // 提示上线 ClientOnline?.Invoke(state); // 是否保存上线信息 if (IsSaveLogClientLineChange) { LogNet?.WriteInfo(ToString(), "IP:" + state.IpAddress + " Name:" + state?.LoginAlias + " " + StringResources.NetClientOnline); } // 计算客户端在线情况 AsyncCoordinator.StartOperaterInfomation( ); }
public ClientStatusManager(IDistributedCache distributedCache) { _distributedCache = distributedCache; _clientOnline = new ClientOnline(new CurrentTime()); }