2013-04-05 89 views
3

我想从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必须是开放的,这在共享服务器计划中是不可能的。所以我尝试使用专用服务器,它的工作完美,我收到设备上的通知。我努力寻找共享服务器的解决方案,但没有找到任何解决方案。

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

+0

请检查您的证书(.pem)或重新生成证书(.pem)并重试。 – Pratik 2013-04-05 06:25:31

+0

@Pratik它只是在本地机器上以及在专用服务器上完美工作,那么它应该在共享服务器上有什么问题? – 2013-04-05 06:26:29

+0

然后可能会在您的共享服务器的SSL端口 – Pratik 2013-04-05 06:29:25

回答

3

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

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

0

这是刺激性的,肯定port 2195问题。与您的托管服务提供商聊天,并要求他们打开该端口。我也有同样的问题。我的本地代码在​​和production等各种条件下运行平稳,但在服务器上出现故障。

不要弄不清楚.pem文件的路径和对应的代码,这将是简单的。对我来说,我把我的certificates (.pem)在一个名为证书目录,并给了这样的路径:

$apnsCert = 'certs/cert_prod.pem'; 

的代码是不是我的应用生产服务器上的工作。我在这上面浪费了一天半的时间,但是当我将它放在应用程序的临时服务器上时,它在第一次运行时运行得非常好。原因!!!!肯定是port 2195问题。

所有的节拍。

1

前段时间我得到了同样的错误,然后我发现它ocurres因为服务器,代理阻止该端口,因为大多数服务器不使用该端口作为普通一(80或21 )。

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

另一种解决方案是使用免费的推送通知供应商,如解析这是很容易使用,并在您的应用程序实现,也可以使用UrbanAirship,但我preffer解析;)

希望它可以帮助