Apple推送证书不适用于特定服务器

时间:2016-02-19 13:53:02

标签: php ios apple-push-notifications

我有一个自昨天以来发布的测试版的iOS应用程序,但从今天开始,通过Apple生产服务器发送的推送消息似乎没有到达用户的手机。我在Apple开发人员中心重新创建了证书,在我的本地服务器上测试了它,并验证了新证书是否正常工作。

然后我将新证书部署到我的实时服务器,但我不断收到此错误消息:

stream_socket_client(): unable to connect to ssl://gateway.push.apple.com:2195 (Connection refused)

我已经确定我确实上传了新证书,但即使重置我的实时服务器也无济于事。

我将我的项目上传到另一个实时服务器(Google云实例)以验证证书是否仅在我的本地服务器上运行,或者是否只是我的实时服务器无法正常工作且Google直播服务器确实已投放在没有错误消息的情况下将消息发送到设备。

所以看来我的默认直播服务器是生产推送消息不起作用的唯一服务器。随着开发证书一起发送的推送顺便从每个服务器传送。

为什么我不能从那个特定服务器发送推送消息?有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您必须检查是否可以从服务器发送推送通知。这意味着应在服务器中打开端口2195以执行相同操作。由于技术/安全原因,大多数托管公司阻止端口,您可以要求他们打开它,如果他们可以。

您可以通过使用telnet并指定要连接的端口来确定服务器中是否已打开。从命令行运行:

MyServer:~ Home$ telnet gateway.sandbox.push.apple.com 2195
Trying 17.149.34.143...
Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'.

如果连接出错,那么它只会挂起而不会返回 - 上面显示了一个可以连接的工作示例。

您需要通过SSH登录您的托管服务才能以这种方式进行测试,不幸的是,您无法在不购买VPS主机帐户的情况下在共享主机上进行测试 - 因此您可能必须依赖询问他们的客户服务。

注意:但是 Hostgator dreamhost 的共享托管正在运行,您可以在购买前与其支持团队聊天。