teknasyon / apple-push-notif
苹果推送通知及反馈提供者
1.0.4
2019-03-11 07:45 UTC
Requires
- php: >=5.3.0
- lib-openssl: *
This package is auto-updated.
Last update: 2024-09-11 19:56:30 UTC
README
一套完整的开源PHP类库,用于与iPhone、iPad和iPod Touch的苹果推送通知服务交互。
新闻
- 2016年6月1日,首次实现HTTP/2协议,请下载此包(请检查您的PHP版本是否内置了支持HTTP2的CURL,并生成新的证书,您不能使用与二进制版本相同的证书:[创建通用的推送通知客户端SSL证书](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html#//apple_ref/doc/uid/TP40012582-CH26-SW11))。
- 2015年9月29日,关于此README.md的一些统计数据,感谢Badge Poser。
- 2015年5月12日,ApnsPHP已迁移至github上的Immobiliare Labs组织。
- 2015年5月7日,ApnsPHP将默认的有效负载大小增加到2048,并现在默认使用TLS协议而不是旧的SSL。来自苹果的消息:[https://developer.apple.com/news/?id=10222014a](https://developer.apple.com/news/?id=10222014a)
- 2012年10月26日,项目源代码已迁移至github。
- 2011年6月18日,请使用ApnsPHP Google Group进行帮助请求或讨论此项目。报告问题请使用问题。谢谢!
- 2010年12月18日,支持完整的APNs消息:消息体、本地化操作按钮、带有参数替换的本地化消息和自定义启动图片。
- 2010年12月15日,提交了第一个版本的支持非运行、前台运行和后台运行应用程序状态的Objective-C演示项目。
- 2010年12月14日,增加了对多个自定义属性的 支持。
- 2010年8月28日,增加了对新APNs增强格式的支持,该格式解决了简单格式中的一些问题:通知过期和错误响应。
- 2010年2月28日,ApnsPHP源代码现在可用。
Packagist
https://packagist.org.cn/packages/duccio/apns-php
感谢@jbender!
架构
- 自动加载系统,仅显式包含Autoload.php,所有类都是按需加载的。
- 消息类,用于构建通知有效负载。
- 推送类,用于向苹果推送通知服务推送一条或多条消息。
- 反馈类,用于查询苹果反馈服务以获取已损坏的设备令牌列表。
- 推送服务器类,用于创建一个具有一个或多个(分叉)进程从公共消息队列读取的推送服务器。
- 日志类/接口,用于记录到标准输出或用于自定义日志记录目的。
- Objective-C演示项目,支持非运行、前台运行和后台运行应用程序状态。
类层次结构
详细信息
在Apple推送通知二进制协议中,没有关于推送到服务器的通知正确性的实时反馈。因此,在每次写入服务器后,Push类等待“读取流”改变其状态(或者至少N微秒);如果发生了这种情况,并且客户端套接字从服务器接收到了“文件结束”信号,那么推送到服务器的通知已损坏,Apple服务器已关闭连接,客户端需要重新连接以发送队列中其他的通知。
为了加快发送活动,可以使用Push Server类创建一个具有多个进程的推送通知服务器,这些进程读取一个公共消息队列并并行发送推送通知。
所有客户端-服务器活动都基于“出错时重试”的模式,并具有可定制的超时、重试次数和重试间隔。
要求
PHP 5.3.0或更高版本,需要支持OpenSSL、PCNTL、System V共享内存和信号量。
./configure --with-openssl[=PATH] --enable-pcntl --enable-sysvshm --enable-sysvsem
如果您只计划使用推送和反馈提供程序而不使用服务器部分,则只需要OpenSSL(不需要PCNTL、System V共享内存或信号量)。
./configure --with-openssl[=PATH]
通常,OpenSSL内置在标准的PHP Linux发行版软件包中。与Mac OS X Snow Leopard一起提供的标准PHP 5.3.0即可正常工作。
请...
... 如果您在App Store上使用ApnsPHP发布应用程序,请留下一条信息!谢谢 :-)