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服务提供商聊天,并要求他们打开该端口。 我也有同样的问题。 我的本地代码在sandbox
和production
环境中都运行和平,但是在服务器上失败了。
不要对.pem
文件path感到困惑,那对应于你的代码就简单了。 对我来说,我把我的certificates (.pem)
放在一个名为certs的目录中,并给出了这样的path:
$apnsCert = 'certs/cert_prod.pem';
该代码不适用于我的应用程序生产服务器。 我在这个上浪费了一天半的时间,但是当我把它放在应用程序的临时服务器上时,它在第一次运行时运行的很好。 原因!!!! 绝对port 2195
问题。
所有的节拍。