deeplookcode/apns-php

Apple Push 通知 & 反馈提供者

v2.0.1-alpha 2020-10-06 10:45 UTC

This package is auto-updated.

Last update: 2024-09-06 21:21:33 UTC


README

一套完整的开源 PHP 类,用于与 iPhone、iPad 和 iPod Touch 的 Apple Push 通知服务进行交互。

新闻

  • 2016年6月1日,首次实现 HTTP/2 协议,请下载 此包(请检查您的 PHP 版本是否内置了支持 HTTP2 的 CURL,并生成新的证书,您不能使用与二进制版本相同的证书:创建通用的推送通知客户端 SSL 证书)。
  • 2015年9月29日,此 README.md 的一些统计数据,感谢 Badge Poser
  • 2015年5月12日,ApnsPHP 已迁移到 github 上的 Immobiliare Labs 组织。
  • 2015年5月7日,ApnsPHP 已将默认的有效负载大小增加到 2048,现在默认使用 TLS 协议而不是旧的 SSL。来自 Apple 的新闻: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,所有类按需加载。
  • 消息类,用于构建通知有效负载。
  • 推送类,用于将一条或多条消息推送到 Apple Push 通知服务。
  • 反馈类,用于查询 Apple 反馈服务以获取已损坏的设备令牌列表。
  • 推送服务器类,用于创建一个具有一个或多个(分叉)进程从公共消息队列读取的推送服务器。
  • 日志类/接口,用于记录到标准输出或用于自定义日志记录目的。
  • Objective-C 示例项目,支持未运行、前台运行和后台运行的应用程序状态。

类层次结构

详细信息

在苹果推送通知二进制协议中,没有关于推送到服务器的通知正确性的实时反馈。因此,每次写入服务器后,推送类都会等待“读取流”改变其状态(或至少N微秒);如果发生了这种情况,并且客户端套接字从服务器接收到了“文件结束”信号,那么推送到服务器的通知就损坏了,苹果服务器已关闭连接,客户端需要重新连接以发送消息队列中仍存在的其他通知。

为了加快发送活动,可以使用推送服务器类创建一个具有多个进程的推送通知服务器,这些进程读取一个公共消息队列并并行发送推送通知。

所有客户端-服务器活动都基于“出错时重试”的模式,具有可自定义的超时时间、重试次数和重试间隔。

要求

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发布应用程序,请留言!谢谢 :-)