Может ли приложение для iPhone выступать в роли сервера для отправки сообщений или push-уведомлений? - PullRequest
2 голосов
/ 04 мая 2011

Я хочу написать приложение для iOS, которое может выступать в качестве клиента и сервера для других iPhone по сотовой сети передачи данных (т.е. без типичного централизованного сервера).Цель состоит в том, чтобы обмениваться сериями из примерно 200 коротких сообщений о событиях, по одному, с сервера iPhone на несколько клиентов iPhone с помощью некоторых средств уведомления.Служба Apple Push Notification подойдет для таких уведомлений, но нет необходимости использовать ее специально.

Я думаю, что отправка push-уведомлений с одного iPhone на другой возможна путем подключения к gateway.push.apple.com с обслуживающего iPhone, как описано в Руководство по программированию локальных и push-уведомлений , но я не могунайти кого-нибудь еще обсуждающего этот подход (может быть, это слишком очевидно?).

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

Требования :

  • Связь должна быть [строго] по сотовой сети передачи данных
    • Wi-Fi недоступен
    • Bluetooth не имеет достаточного диапазона
  • Однонаправленная связь с сервером iPhone, многоадресная рассылка для многих клиентов iPhone
  • Нет джейлбрейка
  • В идеале аккумулятор обслуживающего телефона сможет справиться с этим без перезарядки

Обновление 04.04.11, 2:12 EST: Просто чтобы прояснить, у меня нет особых требований к использованию APN;Я думал, что это возможно в этой настройке, но из обсуждения ниже, похоже, что это не так.Тем не менее, я по-прежнему заинтересован в любой другой системе, которая могла бы помочь мне достичь того же конечного результата с помощью какого-либо типа передачи сообщений или аналогичной формы связи.

1 Ответ

3 голосов
/ 04 мая 2011

Теоретически вы должны иметь возможность написать приложение для iOS, которое может подключаться к APNS и отправлять уведомления на другие устройства, на которых работают ваши приложения. Тем не менее, вашей главной проблемой будет получение «токенов» других устройств. Когда у вас есть централизованный сервер, выполняющий эту работу, он всегда подключен к сети, и, таким образом, клиенты могут «общаться» с ним по протоколу http и самостоятельно регистрировать себя (в процессе передачи свои токены серверу). Таким образом, сервер знает клиентский токен и может использовать их для отправки уведомлений клиентам через APNS.

Однако это невозможно в сценарии, о котором вы говорите. Но это не значит, что это невозможно. Может быть, вы могли бы использовать учетную запись электронной почты X, чтобы хранить все клиентские токены. Каждый клиент отправит письмо на эту учетную запись со своим токеном. Поэтому, когда другой «клиент» хочет отправить уведомление другому клиенту, он может узнать токен, ссылаясь на входящие сообщения учетной записи электронной почты (вы, конечно, можете кэшировать этот материал и оптимизировать его миллионами способов).

Но дело в том, каким образом (сторонний (например, поставщик услуг электронной почты) / ваш собственный) сервер, который работает круглосуточно и без выходных, будет вовлечен в процесс.

Дайте нам знать, как вы прогрессируете с этим. Было бы интересно узнать.

...