Подтвердить что ты не робот

Как вы протестируете сервис обратной связи Push Notification?

Как бы вы протестировали службу обратной связи APNS в песочнице? Или, другими словами, как вы вынуждаете устройство быть в обратной связи?

4b9b3361

Ответ 1

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

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

Ответ 2

Я думаю, что из начального раунда вопроса "Да, как вы получили что-то, чтобы показать там?", на самом деле произошло из-за того, что его тесты не возвращали никаких устройств, т.е. даже если у него были уведомления успешно отправленный на iPhone/iPad, всякий раз, когда он запрашивает сервер FB, ничего не возвращается, именно потому, что приложение никогда не удалялось с устройства, поэтому сервер так же счастлив продолжать отвечать на "0 найденных устройств" (например), потому что ни одному устройству не удалось получить уведомления.

Итак, когда приложение будет удалено с устройства, только тогда сервер уведомлений предоставит обратную связь, то есть он, наконец, ответит на список устройств, которые удалили приложение.

Идея локального сервера тоже хороша.

для -Alex-

==============

Вот неприятный побочный эффект от предложения Apple сохранить хотя бы одно приложение для включения push. Здесь мое предложение к документу, размещенному в теме:

В разделе "Проблемы с сервером обратной связи" интересно отметить два сценария: 1) приложение развертывается на реальном устройстве в режиме производства; 2) приложение развертывается в устройстве разработки, в изолированной среде;

В 1) намек на то, чтобы оставить последнее приложение (я ожидаю, что оно будет) правильно и должно работать, как описано; здесь нет проблем.

На 2) нужно убедиться, что последнее приложение также является приложением для разработки. Или, другими словами, чтобы сделать вещи проще, у вас есть второе "приложение для песочницы", которое есть только для этого, нажмите "последний переключатель".

Проблема заключается в том, что после удаления моего приложения для разработки ничего не происходит на сервере обратной связи sandbox, хотя на устройстве есть другие приложения с поддержкой push-поддержки, однако они все производственные приложения, поэтому они будут "report" (если можно так выразиться) на сервер обратной связи с производством.

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

Надеясь, что это правильно... проверит тониту.

Ответ 3

Я понимаю, что для этого был принят ответ, но для проведения первого раунда тестирования без постоянной установки и удаления моего приложения с моего телефона /ipod я создал ОЧЕНЬ простой ruby ​​ script для работы в качестве сервера обратной связи, Я настроил свой рубиновый класс APNS для подключения к этому серверу вместо этого (localhost: 2196) и прочитал его. Я НЕ запускал SSL-соединение, поэтому вместо этого я использовал базовый сокет. Ниже script я использовал сервер для хоста.

#!/usr/bin/env ruby

require 'socket'

puts 'Opening server'
server = TCPServer.open(2196)

loop {
    puts 'Waiting for connection'
    client = server.accept

    puts 'Connected preparing data'
    data = [1, 2, 3, 4, 0, 32, ['d41c3767074f541814c2207b78f72e538569cb39eae60a8c4a8677549819e174']]
    puts 'Data for delivery: ' + data.inspect

    begin
        data[6] = data[6].pack('H*')
        data = data.pack('c6a*')

        loop {
            puts 'Writing Data'
            client.write data

            puts 'Sleeping for 5 seconds'
            sleep 5
        }
    rescue
    end
    puts 'Done writing, closing'
    client.close
}

Этот script будет прослушивать, и когда он получает соединение каждые 5 секунд, напишите пакет в сокет. Если соединительный разъем закрывается (например, вы убиваете процесс обратной связи), этот script сбрасывает и ждет нового соединения.

Помните, не используйте соединения SSL-соединения только стандартный рубиновый сокет. Удачи!