Iphone Apple推送通知在共享服务器上不起作用

Iphone Apple推送通知在共享服务器上不起作用,iphone,ios,objective-c,apple-push-notifications,Iphone,Ios,Objective C,Apple Push Notifications,我想从PHP脚本发送APN(苹果推送通知)。我的PHP脚本工作正常,从localhost发送时,我也会在iphone设备中收到通知,但当我使用相同的.pem文件将相同的脚本上载到共享服务器时,它返回错误 Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.push.apple.com:2195 (Connection refused) in /myp

我想从PHP脚本发送APN(苹果推送通知)。我的PHP脚本工作正常,从localhost发送时,我也会在iphone设备中收到通知,但当我使用相同的.pem文件将相同的脚本上载到
共享服务器时,它返回错误

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


我的问题:是否可以在不打开共享服务器端口2195的情况下发送APN?如果是,请给出一些指导。

否,如果不使用2195端口,则无法发送APN消息


如果要从共享服务器发送推送通知消息,请尝试使用一些第三方工具,如

这是一个恼人的问题,而且肯定是端口2195的问题。与您的主机提供商聊天,让他们打开端口。我也有同样的问题。我的本地代码在任何情况下都能正常运行,比如
sandbox
production
,但它在服务器上出现了故障

不要对
.pem
文件路径感到困惑,这与您的代码相对应很简单。对于我来说,我将我的
证书(.pem)
放在名为certs的目录中,并给出如下路径:

$apnsCert = 'certs/cert_prod.pem';
代码在我的应用程序生产服务器上不起作用。我在这上面浪费了一天半的时间,但在第一次运行时,当我把它放在应用程序的暂存服务器上时,它运行得非常好。理由!!!!肯定
端口2195
问题


所有的节拍。

不久前,我遇到了相同的错误,然后我发现它是因为服务器而出现的,代理正在阻止该端口,因为大多数服务器不使用该端口作为公共端口(80或21)

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

另一个解决方案是使用免费的推送通知提供程序,比如Parse,它非常容易在应用程序上使用和实现,您也可以使用UrbanAirship,但我更喜欢Parse;)


希望有帮助

请检查您的证书(.pem)或重新生成证书(.pem),然后再试一次。@Pratik它在本地计算机和专用服务器上都能正常工作,那么它在共享服务器上应该有什么问题?那么共享服务器的SSL可能有问题Port@Pratik对这就是我如何在共享服务器上执行此操作的问题?您应该打开SSL端口,这是推送通知所必需的