iOS 推送通知服务器
Posted
技术标签:
【中文标题】iOS 推送通知服务器【英文标题】:Server for iOS Push Notifications 【发布时间】:2012-12-02 17:50:45 【问题描述】:我正在尝试弄清楚如何为 twitter 应用程序创建推送通知服务器。我希望能够为提及、星标、关注等设置推送通知。这一切都可以通过 API 实现,就像 Tweetbot 一样。如果有人能指出我创建实际服务器部分的方向,即处理用户名的存储并将消息推送出去,那就太好了。如果有关于如何做到这一点的教程,那就太好了!我希望能够通过 ruby 做到这一点,但任何方法都可以。
谢谢
【问题讨论】:
有很多教程,但首先,您是否有专用服务器(或非常好的共享托管公司,会将您自己提供的证书安装到他们的服务器并打开一个特殊的传出端口) ?不幸的是,您将需要它,除了为您的推送服务支付第三方推送通知服务器之外,没有“简单”的方法 我确实有一家很好的托管公司来允许所有这些,但我也可以拥有一台专用的 Mac Mini 作为我的服务器。需要的特殊端口是什么?如果我拥有所有这部分,我会从那里去哪里? 这应该对您有所帮助:developer.apple.com/library/ios/#documentation/… 如果您仍有疑问,我会尝试写一个详细的答案。但我认为我提供的链接非常有用 我已经阅读了该文档,接下来我要坚持的部分是创建自己的推送服务器来处理管理设备、用户名等以推送提及和其他推特所需的内容通知。 【参考方案1】:我构建推送服务器的方式是这样的:
1) Symfony 2 Web 框架,用于构建管理门户来管理我的实体(Symfony2 类似于 Ruby)
2) 一个 Node.js 服务器,它允许我保持与 Apple 推送通知服务器的持久连接。 (我告诉你,这个 Node.js 野兽是史诗般的)
3) Node.js 将向我的 Symfony 服务器发出 HTTP Post 请求,请求它接收新通知
4) 我的 Symfony 服务器将接收来自我的 Node.js 服务器的响应,找到所有需要发送的新通知并返回 JSON 格式的需要发送的通知列表,通知包含要发送的消息以及接收推送通知的一组唯一推送令牌(也选择性地选择令牌环境 - 开发与生产)
5) 最后,我的 Node.js 服务器接收 JSON 数据,解析 JSON 并通过 TLS 套接字流将通知二进制流发送到 Apple 的 PNS 服务器,异步实现高性能吞吐量:D
这种方法允许我分离 php Symfony 服务器来管理我的数据,而不会干扰从任何数据相关逻辑中抽象出来的 Node.js 推送服务器。 Node.js 推送服务器只需要知道需要发送的消息和要发送到的令牌数组。同时,我可以扩展和增强我的通知实体,例如令牌组(允许我通过选择一个组来快速获取一堆令牌,例如成员,朋友,如果你喜欢,敌人:D),通知日期(所以通知可以在未来的某个日期而不是立即发送)等等。
希望对您有所帮助。
【讨论】:
以上是关于iOS 推送通知服务器的主要内容,如果未能解决你的问题,请参考以下文章