Как вы тестируете сервис обратной связи для iphone push-уведомлений? - PullRequest
0 голосов
/ 29 июля 2010

Мне нужен способ проверить службу обратной связи Push-уведомлений.Я могу отправить уведомления в порядке.

Я установил приложение с помощью XCode на свой IPod, отправил push-уведомления просто отлично, приложение получило их нормально.

Я удалил приложение, отправил несколько push-уведомлений.Тогда попробовал сервис обратной связи, но не повезло.Я не получаю никаких байтов обратно из потока.

Даже пытался ждать до дня.Пробовал то же самое на другом iphone, но ничего.Я уверен, что код в порядке, дважды проверил URL и порт и т. Д., Все в порядке.Помимо использования тех же настроек (кроме URL и порта) я могу отправлять толчки просто отлично.

Так что я не уверен, что теперь делать.Я искал в Интернете, но не смог найти ничего полезного.Кто-то предложил именно то, что я уже попробовал (отправить push -> удалить -> отправить push -> прослушать обратную связь).

Есть идеи?В любом случае, убедитесь, что все в порядке, прежде чем запускать его?

Ниже приведен код (C #):

using (TcpClient client = new TcpClient())
        {
            client.Connect("feedback.sandbox.push.apple.com", 2196);
            using (NetworkStream networkStream = client.GetStream())
            {
                Console.Out.WriteLine("Client Connected");
                X509Certificate cert = new X509Certificate(fileLocation, password);
                X509CertificateCollection certCollection = new X509CertificateCollection(new X509Certificate[1] { cert });
                SslStream ssl = new SslStream(client.GetStream(), true, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);                    
                try
                {
                    int bytesRead;
                    byte[] b = new byte[38];
                    ssl.AuthenticateAsClient("feedback.sandbox.push.apple.com", certCollection, SslProtocols.Default, false);
                    do
                    {
                        bytesRead = ssl.Read(b, 0, b.Length);
                    }
                    while (bytesRead != 0);
                    ssl.Close();
                }
                catch (AuthenticationException e)
                {
                    Console.WriteLine("Exception: {0}", e.Message);
                    return;

                }
            }
        }

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

См. Документация Apple : при удалении последнего приложения с поддержкой push на устройстве серверы Apple не уведомляются об удалении приложения, поэтому устройство никогда не появится на сервере обратной связи.

Чтобы обойти это, вы должны создать фиктивное приложение, которое регистрировалось бы для Push-уведомлений в режиме разработки перед удалением приложения, которое вы тестировали.

0 голосов
/ 29 июля 2010

На устройстве должно быть установлено хотя бы одно push-приложение. Если вы удаляете приложение, и на устройстве нет приложений push, устройство не подключается к push для сохранения батареи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...