public override void Touch(string connectionId) { SocketAsyncEventArgsExtended connection; if (ClientsToSocket.TryGetValue(connectionId, out connection)) { connection.LastResponse = DateTime.UtcNow; } }
private void EndAccept(IAsyncResult ar) { var listener = ListenSocket.EndAccept(ar); var connId = Guid.NewGuid().ToString(); var args = ClientPool.Take(); args.AcceptSocket = listener; args.UserToken = ServerConnectionFactory.Create(this, connId); args.LastResponse = DateTime.UtcNow.AddMinutes(1); listener.BeginReceive(_receiveBuffer, 0, _receiveBuffer.Length, SocketFlags.None, EndReceive, args); ListenSocket.BeginAccept(EndAccept, ListenArgs); ClientsToSocket.TryAdd(connId, args); OnClientConnectedInvoke((ServerConnectionBase)args.UserToken); }