public static Task Close(this ISocketListener socketListener, IResponse response, ILogger logger) { return socketListener.Send(response.ToBytes(), () => { logger.Debug("Disconnected client from {0}:{1}", socketListener.RemoteIpAddress, socketListener.RemotePort); socketListener.Dispose(); }, ex => logger.Error("Error sending response: {0}", ex)); }