0

我需要一种方法来测试推送通知反馈服务。我可以很好地发送通知。

我使用 XCode 将应用程序安装到我的开发 IPod 上,发送推送通知就好了,应用程序接收它们正常。

我卸载了应用程序,发送了一些推送通知。然后尝试了反馈服务,但没有运气。我没有从流中收到任何字节。

甚至尝试等待最多一天。在不同的iphone上尝试了相同的方法,但没有。我确信代码很好,仔细检查了 url 和端口等,一切都很好。除了使用相同的设置(除了 url 和端口)之外,我可以很好地发送推送。

所以我不确定现在该怎么做。我在网上搜索过,但找不到任何有用的东西。有人确切地提出了我已经尝试过的建议(发送推送 -> 卸载 -> 发送推送 -> 听取反馈)。

有任何想法吗?有什么方法可以确保它在直播之前没问题?

下面是代码(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;

                }
            }
        }
4

2 回答 2

0

设备上应至少安装一个推送应用程序。如果您卸载应用程序并且设备上没有推送应用程序,则设备不会连接到推送以节省电池。

于 2010-07-29T19:56:23.850 回答
0

请参阅Apple 文档:删除设备上最后一个启用推送的应用程序时,Apple 服务器不会收到有关该应用程序删除的通知,因此该设备将永远不会出现在反馈服务器上。

要解决此问题,您应该创建一个虚拟应用程序,该应用程序将在开发模式下注册推送通知,然后再删除您正在测试的应用程序。

于 2012-02-08T16:37:27.917 回答