Apple推送通知不在共享服务器上工作

我想从PHP脚本发送APN(Apple推送通知)。 我的PHP脚本工作正常,我收到通知在iphone设备以及从本地主机发送时,但是当我上传相同的脚本具有相同的.pem文件到shared server它返回错误…

 Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.push.apple.com:2195 (Connection refused) in /mypath/SendPushNotification.php on line 28 Failed to connect: 111 Connection refused 

从某些来源,我知道发送APN端口2195必须打开这是共享服务器计划中不可能的。 所以我尝试使用专用服务器,它的工作完美,我收到设备上的通知。 我努力寻找共享服务器的解决scheme,但没有find任何解决scheme。

我的问题:是否有可能发送APN而不从共享服务器打开端口2195? 如果是给一些指导。

不,不能使用2195端口发送APN消息。

如果您想从共享服务器发送推送通知消息,请尝试使用http://urbanairship.com/等第三方工具。

前一段时间,我得到了同样的错误,然后我发现它由于服务器而发生,代理正在阻塞该端口,因为大多数服务器不使用该端口作为常见端口(80或21)。

在这种情况下,您可以尝试在您的服务器经销商处寻求支持,他们可以为您打开该端口(2195),如果您采取此解决scheme,我build议还要求打开端口2196端口用于反馈。

另一个解决scheme是使用一个免费的推送通知提供程序,如Parse,它非常易于在您的应用程序中使用和实现,您也可以使用UrbanAirship,但是我会提供Parse;)

希望能帮助到你

这是令人烦恼的,肯定port 2195问题。 与您的托pipe服务提供商聊天,并要求他们打开该端口。 我也有同样的问题。 我的本地代码在sandboxproduction环境中都运行和平,但是在服务器上失败了。

不要对.pem文件path感到困惑,那对应于你的代码就简单了。 对我来说,我把我的certificates (.pem)放在一个名为certs的目录中,并给出了这样的path:

 $apnsCert = 'certs/cert_prod.pem'; 

该代码不适用于我的应用程序生产服务器。 我在这个上浪费了一天半的时间,但是当我把它放在应用程序的临时服务器上时,它在第一次运行时运行的很好。 原因!!!! 绝对port 2195问题。

所有的节拍。