我一直在使用https://github.com/Redth/APNS-Sharp向安装了我的 iPhone 应用程序的所有设备发送推送通知消息。它的工作方式非常不一致!
这个问题是如何开始的?
我们有一个拥有大约 500 名用户的 iPhone 应用程序。我们注意到大多数用户没有收到通知消息!进一步实时调试,我注意到以下事件序列。
.....
10:37:33 AM - Notification Queued!
10:37:33 AM - Notification Queued!
10:37:33 AM - Notification Queued!
10:37:33 AM - Notification Queued!
10:37:36 - Connecting...
10:37:36 - Connected...
10:37:36 - Notification Success
10:37:36 - Notification Success
10:37:36 - Notification Success
...
10:37:36 - Error: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.
10:37:39 - Connecting...
10:37:40 - Connected...
10:37:40 - Notification Success
10:37:40 - Notification Success
....
我做了什么?
我使用 Ad-Hoc 生产证书创建了测试 iPhone 应用程序并将其安装在 5 台设备上。我尝试同时向所有这些设备发送多条消息。我注意到接收消息时的行为完全不一致。有时所有 5 台设备都会立即收到消息。在 5 台设备中,有 3 台设备几乎立即收到消息,而在其他两台设备中,其中任何一台设备有时会立即收到消息,而其他设备除了最后一条消息外没有收到所有消息。有时它根本没有收到消息!
我还尝试一次向单个设备发送消息,并注意到一旦它开始接收消息,所有消息都会立即发送,有时会在长时间(大约 20 分钟)后收到最后一条消息。
我验证了什么?
- 它使用相同的连接来发送所有消息,因此它不会打开多个连接。
- 使用正确的证书和推送通知服务器。
- 运行反馈服务几次,但它没有返回任何设备 ID。
有没有其他人注意到这种行为?当您向多个设备发送消息时可能会出现什么问题?我还能做些什么来使推送通知可靠吗?
谢谢。