Проверка состояния веб-сервера с использованием таймера - PullRequest
0 голосов
/ 22 июля 2011

Мне нужно скачивать файлы с моего сервера.Многократная загрузка поддерживается.Когда я нажимаю «загрузить», мне нужно проверить сетевое подключение и подключение к серверу, Что сделано .

Вот проблема!

Во время загрузки, если сервер становится недоступным,это создает некоторые проблемы.Поэтому я должен проверить подключение к серверу через 5 секунд и вывести предупреждение о том, что сервер не работает.Я использовал таймер для проверки подключения.Но проблема в том, что во время нескольких загрузок представление предупреждений отображается столько же раз, сколько и количество загрузок.И если сервер становится доступным между ними, то приложение зависает.Но я мог видеть, что код таймера все еще работает ..

Пример кода:

    -(void) myFunction     {
if ([networkCheck isHostReachable]) {
        if (![ServerConnectivity isServerUp:myUrl]) {
            serverStatusAlert = YES;        
        }
        if (serverStatusAlert) {
            UIAlertView *serverDownAlert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Server is down. Please try after sometimes." delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];
            [serverDownAlert show];
            [serverDownAlert release];
            serverDownAlert = nil;
            [self cancelAllDownload];
            connectivityTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(checkServerStatus) userInfo:nil repeats:YES];
        }
 }
 else {
      NSLog(@"No network connection...");
 }
}

-(void)checkServerStatus {
    if ([ServerConnectivity isServerUp:myUrl]) {
        [connectivityTimer invalidate];
        connectivityTimer = nil;
        serverStatusAlert = NO;
        //function to resume downloads
    }
    else {
        //pause downloads
    }
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...