我正在开发使用Apple Push Notifications的iPhone应用程序。在iPhone方面,一切都很好,在服务器端,我有问题。通知已正确发送,但是当我尝试查询反馈服务以获取已从中卸载该应用程序的设备列表时,总是得到零结果。我知道我应该获得一个结果,因为该应用程序已从我的测试设备之一中卸载。 24小时或更长时间后,反馈服务仍然没有结果。
有任何想法吗?有人知道反馈服务需要多长时间才能识别出我的应用已从测试设备上卸载吗?可能是由于沙箱环境造成的吗?
最佳答案
我刚刚遇到了完全相同的问题:
int bytesReceived = 0;
byte[] feedbackPacket = new byte[38]; // Each feedback should always be 38 bytes long
bytesReceived = stream.Read(feedbackPacket, 0, feedbackPacket.Length);
while(bytesReceived > 0)
{
ProcessFeedback(feedbackPacket);
Array.Clear(feedbackPacket, 0, feedbackPacket.Length);
bytesReceived = stream.Read(feedbackPacket, 0, feedbackPacket.Length);
}
在沙盒上,以上代码始终返回0个字节。我在实时主机上运行此命令,向设备发送一条通知,删除该应用程序,然后发送第二条通知。反馈服务在发送第二个请求的一秒钟内工作。
我还没有发现的一件事是但是多长时间调用一次反馈服务。我现在每10分钟打一次电话。