2015-07-12 4 views
0

Я новичок в разработке iOS и начал учебное пособие по простому приложению обмена сообщениями с использованием Parse в качестве сервера. Как они кодируются, запросы приложений обрабатываются каждый раз, когда отправляется сообщение (чтобы сохранить сообщение), но видя, что Parse разрешает только 30 req/sec в своем БЕСПЛАТНОМ плане, как можно было бы сделать приложение для обмена сообщениями? Является ли стандартным соглашением сохранять данные на сервере для каждого сообщения? Просто не кажется практичным иметь существенную базу пользователей в приложении, которое может запросить только 30 раз в секунду.приложение простого обмена сообщениями без сервера

Вопрос упрощен: каково стандартное соглашение о взаимоотношениях с серверами для простых приложений для обмена сообщениями? Поддерживает ли приложение сохранение каждого сообщения на сервере или работает ли с помощью push-уведомлений? (Но даже с помощью push-уведомлений приложение должно быть открыто для их получения, по крайней мере, из-за моего ограниченного понимания толчков).

ответ

2

Это не является практичным, чтобы иметь существенную базу пользователей для приложения для обмена сообщениями с 30 запросов в секунду. В Parse работает бизнес. Они дают вам 30 API req/sec, чтобы вы могли попробовать свои услуги и посмотреть, как это работает. Но если вы разрабатываете приложение для значительной пользовательской базы, вам наверняка придется заплатить, так как вы ожидаете, что Parse будет запускать серверы для вас.

С учетом этого было бы нормально, если бы (типичное) приложение для обмена сообщениями выполняло по меньшей мере один запрос API на отправленное сообщение на сервер. Сервер отвечает за прием, маршрутизацию, хранение и доставку сообщений. Также было бы нормально, чтобы это отправленное сообщение вызывало push-уведомление и запрос API от клиентского приложения для извлечения сообщения. Общий рабочий будет:

  1. Пользователь посылает сообщение
  2. App добавления сообщений на сервере
  3. Сервер определяет, где сообщение возглавляемое
  4. сервер отправляет уведомление толчок получателю
  5. приложение
  6. получателя запросы сервера ожидающим сообщение (и)
  7. Приложение-получатель отображает сообщение для получателя пользователя

Это два запроса API и push-уведомление для каждого отправленного сообщения.

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

Теперь, конечно, есть способы уменьшить количество запросов API-интерфейса сервера. Ваше приложение может размещать сообщения локально, ваш сервер может отправлять push-уведомления, а ваши клиенты могут выполнять пакетные запросы (или вы можете сделать все три). Все эти параметры могут значительно сократить количество запросов API-интерфейсов сервера, за которые вы платите, но они также уменьшат отзывчивость и удобство работы службы обмена сообщениями.

Вы также можете разработать сложную систему одноранговой связи (например, Skype в прошлом), удалив серверы из потока сообщений. Однако вам придется разрабатывать сложные системы проверки подлинности и проверки, сложные системы маршрутизации, сложные системы хранения и т. Д. A , лот работы. И даже если бы вы это сделали, я не знаю, разрешит ли Apple это в App Store. Много времени, работы и неопределенности, чтобы не платить небольшую стоимость для сервера.

Что касается push-уведомлений: Push-уведомления отправляются с сервера на клиентское приложение-получатель. Ваш iPhone не может нажать уведомление другого iPhone. Всегда будет сервер посередине. Ваше приложение не обязательно должно быть открыто для получения push-уведомления. iOS получит его, а затем доставляет его в ваше приложение. Если ваше приложение закрыто, iOS (частично) откроет его в фоновом режиме для доставки сообщения.

+0

Это отличный ответ. – Macondo2Seattle

+0

Согласитесь с BlackRider, спасибо за помощь –

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