2015-12-10 4 views
2

Я использую SRWebSocket для открытия подключения к веб-обозревателю в iOS. Но если я иногда приостанавливаю приложение, соединение автоматически закрывается. После этого, когда я пытаюсь отправить какие-либо данные, соединение с websocket не выполняется.Соединение SRWebsocket закрывается автоматически после того, как приложение простаивает некоторое время в iOS.

Есть ли способ сохранить связь в сети, пока я вручную не отключусь?

ответ

2

Нам нужно периодически ping-серверу (в моем случае я делаю это каждые 30 секунд), чтобы избежать закрытия соединения со стороны сервера.

- (void)webSocketDidOpen:(SRWebSocket *)webSocket; 
{ 
    NSLog(@"Websocket Connected"); 

    // Sending autoping to server 
    [self startConnectionCheckTimer]; 
} 

// Checking for WSconnection by Sending Scheduled Ping 
- (void)startConnectionCheckTimer { 
    if (!_timer) { 
     _timer = [NSTimer scheduledTimerWithTimeInterval:30.0f 
                target:self 
               selector:@selector(sendPing:) 
               userInfo:nil 
               repeats:YES]; 
    } 
} 

- (void)stopConnectionCheckTimer { 
    if ([_timer isValid]) { 
     [_timer invalidate]; 
    } 
    _timer = nil; 
} 

- (void)sendPing:(id)sender 
{ 
    [_webSocket sendPing:nil]; 
} 

Где _webSocket мой объект SRWebSocket, _timer является объектом NSTimer.

1

Web Socket отключается, когда приложение хранится в режиме ожидания или когда приложение идет в фоновом режиме. Вы можете попробовать использовать это:
[UIApplication sharedApplication] .idleTimerDisabled = YES

Используя это, отключит предоставление iPhone бездействовать, если ваше приложение работает.

+0

Я использовал это для предотвращения соединения веб-камеры с клиентской стороны. Спасибо за ответ. –

+0

@NobinThomas: Если бы этот ответ сработал для вас, тогда +1. Я буду рад помочь, если у вас возникнут другие проблемы. –

+0

Hi Neha, к сожалению, у меня нет такой репутации, чтобы добавить очки (показывая минимум 15 баллов). :(Я добавлю, как только я получу эту привилегию. Оцените свой ответ. –

Смежные вопросы