yarmolchuk
@yarmolchuk
iOS developer

Работа WebSocket в фоновом режиме приложения?

Доброго времени суток.


Возможно ли создать WebSocket для связи между клиентом и сервером которое не разорвется когда приложение уйдет в фоновый режим работы, то есть пользователь нажмет на кнопку «home» на своем iphone?


Мне известно что есть 5 типов приложений, которым разрешено работать без ограничений в Фоновом состоянии в iOS 5:

Приложения, которые проигрывают аудио, находясь в Фоновом состоянии. Хороший пример — тот же Instacast, который воспроизводит подкаст.


Приложения, которые отмечают ваше местоположение в Фоновом состоянии. Например, вам нужны голосовые напоминания от навигации TomTom, даже если другое приложение Активно.


Приложения, которые «слушают» входящие звонки через VoIP. Если вы используете Skype на iOS, вы можете получить входящий звонок Skype, когда приложение находится в Фоновом состоянии.


Приложения Nesstand, которые загружают новый контент.


Приложения, которые получают постоянные обновления от внешних аксессуаров, находясь в Фоновом состоянии.



Мое приложение это чат клиент может общатся, нужна возможно слать сообщения когда приложенеи находится в фоновом режиме.
  • Вопрос задан
  • 4287 просмотров
Решения вопроса 1
yarmolchuk
@yarmolchuk Автор вопроса
iOS developer
может кому пригодится, выход с ситуаций нашол через стороний фреймворк github.com/ndcube/WebSocket-for-Objective-C только при создание сокета

CFStreamCreatePairWithSocketToHost(NULL, ( CFStringRef)hostURL.host, port, &readStream, &writeStream); CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); inputStream = ( NSInputStream *)readStream; outputStream = ( NSOutputStream *)writeStream;

дал ему ключ как kCFStreamNetworkServiceTypeVoIP и в настройках проэтка сказал что VoIP работает в фонов режиме.

<key>UIBackgroundModes</key> <array> <string>voip</string> </array>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@egorinsk
Но вроде для таких случаев придуман push, нет?
Ответ написан
Комментировать
yarmolchuk
@yarmolchuk Автор вопроса
iOS developer
проблема в том что push не дает гарантий что пользователь его получил!
Ответ написан
Комментировать
No_Time
@No_Time
Честно не получится. Можно попробовать убедить, что ваше приложение это музыкальный плеер, или геолокационный сервис. Только так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы