Это не является практичным, чтобы иметь существенную базу пользователей для приложения для обмена сообщениями с 30 запросов в секунду. В Parse работает бизнес. Они дают вам 30 API req/sec, чтобы вы могли попробовать свои услуги и посмотреть, как это работает. Но если вы разрабатываете приложение для значительной пользовательской базы, вам наверняка придется заплатить, так как вы ожидаете, что Parse будет запускать серверы для вас.
С учетом этого было бы нормально, если бы (типичное) приложение для обмена сообщениями выполняло по меньшей мере один запрос API на отправленное сообщение на сервер. Сервер отвечает за прием, маршрутизацию, хранение и доставку сообщений. Также было бы нормально, чтобы это отправленное сообщение вызывало push-уведомление и запрос API от клиентского приложения для извлечения сообщения. Общий рабочий будет:
- Пользователь посылает сообщение
- App добавления сообщений на сервере
- Сервер определяет, где сообщение возглавляемое
- сервер отправляет уведомление толчок получателю
приложение
- получателя запросы сервера ожидающим сообщение (и)
- Приложение-получатель отображает сообщение для получателя пользователя
Это два запроса API и push-уведомление для каждого отправленного сообщения.
Помимо этого, в зависимости от дизайна службы обмена сообщениями сервер может также хранить все сообщения, чтобы позднее, на другом устройстве пользователь мог открыть приложение, и он будет загружать историю, чтобы синхронизироваться.
Теперь, конечно, есть способы уменьшить количество запросов API-интерфейса сервера. Ваше приложение может размещать сообщения локально, ваш сервер может отправлять push-уведомления, а ваши клиенты могут выполнять пакетные запросы (или вы можете сделать все три). Все эти параметры могут значительно сократить количество запросов API-интерфейсов сервера, за которые вы платите, но они также уменьшат отзывчивость и удобство работы службы обмена сообщениями.
Вы также можете разработать сложную систему одноранговой связи (например, Skype в прошлом), удалив серверы из потока сообщений. Однако вам придется разрабатывать сложные системы проверки подлинности и проверки, сложные системы маршрутизации, сложные системы хранения и т. Д. A , лот работы. И даже если бы вы это сделали, я не знаю, разрешит ли Apple это в App Store. Много времени, работы и неопределенности, чтобы не платить небольшую стоимость для сервера.
Что касается push-уведомлений: Push-уведомления отправляются с сервера на клиентское приложение-получатель. Ваш iPhone не может нажать уведомление другого iPhone. Всегда будет сервер посередине. Ваше приложение не обязательно должно быть открыто для получения push-уведомления. iOS получит его, а затем доставляет его в ваше приложение. Если ваше приложение закрыто, iOS (частично) откроет его в фоновом режиме для доставки сообщения.
Это отличный ответ. – Macondo2Seattle
Согласитесь с BlackRider, спасибо за помощь –