我使用PushSharp为几个应用发送通知。 PushSharp非常棒,它真正简化了推送服务的工作,我想知道使用它的正确方法是什么? 我没有找到关于此的例子/解释。
现在,当我收到要发送的消息时,我......
我应该这样工作,还是保持这个PushService对象存活并在需要时调用它的方法?
我应该如何使用PushService对象来获取未注册的设备ID?有一个专门的实例?
任何建议都将不胜感激。
答案 0 :(得分:8)
这是一个经常出现的问题。
答案不一定是这种或那种方式,但这取决于你的情况。在大多数情况下,只要在需要时创建PushBroker实例就绝对没问题,因为大多数平台都使用基于HTTP的协议来发送通知。对于Apple,他们在文档中声明您应该保持与APNS的连接打开,以便最大限度地减少打开和关闭安全连接的开销。
然而,在实践中,我认为这意味着他们不希望您经常连接和断开连接(例如:他们不希望您为发送的每条消息创建新连接)。实际上,如果您经常发送批量通知(假设每15分钟或每小时一次),那么对于每个批次打开新连接然后在完成后关闭它们可能不会有问题。
我从来没有听说有人因为这样做而被Apple的APNS服务器阻止。事实上,在使用推送通知的早期阶段,我遇到了一个错误,导致为每个通知创建一个新的apns连接。我每天都会发送数以千计的通知,而且从来没有从Apple那里听到任何关于它的信息(最终我将其识别为错误并修正了它)。
至于收集反馈,默认情况下,ApplePushService将在启动10秒后轮询反馈服务器,然后每隔10分钟轮询一次。如果要禁用此功能,只需将ApplePushChannelSettings.FeedbackIntervalMinutes设置为< = 0.然后,您可以使用FeedbackService类在需要时手动轮询反馈。