У меня есть приложение для voip, и клиент все равно будет доступен после закрытия приложения. Могу ли я что-то сделать, чтобы мое приложение работало как facetime?Возможно ли сохранить розетку даже после закрытия приложения?
Приложение должно зарегистрироваться на нашем сигнальном сервере. Сервер передает сообщения, такие как «начать вызов» для клиентов.
Итак, если A хочет вызвать B, A должен открыть сокет и отправить сигнал входа (тот же для B), а затем отправить на сервер сигнал «call_create» с параметром «пользователь», установленным на «B». Затем сервер просматривает сообщение, видит, что он предназначен для B и отправляет его в B (если B также входит в систему). B теперь получает сообщение о том, что A хочет начать вызов и может отправить «принять» обратно на сервер. Сервер отправляет это сообщение обратно в A, и вызов запускается.
Теперь, когда приложение закрыто (дважды нажмите кнопку «домой», проведите по экрану вверх), очевидно, что сокет также убит. Но один из наших клиентов хочет получать звонки после убийства приложения (длинная история, но другого выхода нет).
Я знаю, что facetime не нужно запускать, чтобы иметь возможность принимать вызовы, но я не уверен, что это возможно с помощью обычного приложения (facetime является частью ОС). В идеале я бы частично переместил регистрацию в меню настроек, точно так же, как facetime, а затем все время подключался к серверу сигнализации, независимо от того, работает приложение или нет.
Это похоже на проблему с дизайном. Вы можете рассмотреть возможность разделения вашего приложения на два. Одна часть работает в фоновом режиме, поддерживая соединение с сигнальным сервером и раскалывая другую часть, при необходимости, интерфейс. Поскольку вы не можете ожидать, что ваш телефон будет получать вызовы, если он отключен ... ;-) – alk