使用 APN 时我们从哪里发送 json 负载?
我想知道当我们想要使用推送通知服务时。从我们发送 json 有效负载的地方,从我们的应用程序或者它可能在服务器上生成?如果必须从我们的应用程序发送,那么我们如何将 json 负载+设备令牌发送到我们自己的 Web 服务器?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它无法从您的应用程序发送。首先,如果您的应用程序正在运行,为什么要让它向自身发送推送通知,这是没有意义的。
其次,为了与 APNS 服务器通信,您需要每个应用程序的证书文件来签署请求。您无法在不损害应用程序推送服务安全性的情况下分发它。
It can't be sent from your app. First off that would make no sense, if your app is running why would you have it send a push notification to itself.
Second, in order to communicate with the APNS servers you need a per app cert file to sign requests. You cannot distribute it without compromising the security of your applications push service.
路易斯说你不能用手机发送消息,这是绝对正确的,他的理由也很充分。您肯定需要与您自己的服务器进行通信,然后该服务器会将内容发送到 Apple。
要将消息发送到您自己的服务器,请查看 ASIHTTPRequest - 这是一个非常棒的包,让事情变得非常简单发送 HTTP 请求。
在您的服务器上,您需要从您自己的服务器保持与 Apple 推送服务的持久连接,并将手机中的 JSON 转换为消息以发送给 Apple。
至少有两种服务可以为您处理繁重的工作:
您可能需要查看其中一项服务来帮助您实现这一点。再说一次,我在一家公司工作,所以对此持保留态度。
如果您想查看如何使用 ASIHTTPRequest 将设备令牌发送到服务器的一些示例,您可以查看我们的推送示例应用程序 位于 bitbucket 上。
Louis is absolutely right that you can't send messages from your phone, and his reasons are spot on. You'll definitely need to communicate to your own server, which will then send things on to Apple.
To send messages to your own server, look at ASIHTTPRequest - it's a fantastic package that makes it really easy to send HTTP requests.
On your server, you'll need to keep open a persistent connection to Apple's push service from your own servers and translate the JSON from the phone into a message to deliver to Apple.
There are at least two services out there that take care of the heavy lifting for you:
You might want to look at one of these services to help you implement this. Again, I work at one, so take this with a huge grain of salt.
If you want to see some examples of how to use ASIHTTPRequest to send a device token to a server, you can look at our push sample application on bitbucket.