Php 如果可以,如何使用Apple推送通知';你不能使用2195端口吗?

Php 如果可以,如何使用Apple推送通知';你不能使用2195端口吗?,php,iphone,sockets,apple-push-notifications,Php,Iphone,Sockets,Apple Push Notifications,我使用stream\u socket\u client()开发了一个脚本,它可以在我的本地主机上运行,但当我尝试在线使用它时(使用Fatcow.comweb hosting),它将无法运行。我收到以下错误: 警告:stream\u socket\u client()[function.stream socket client]:无法连接到ssl://gateway.sandbox.push.apple.com:2195 (连接被拒绝)在../send notification.php在线18 连

我使用
stream\u socket\u client()
开发了一个脚本,它可以在我的本地主机上运行,但当我尝试在线使用它时(使用Fatcow.comweb hosting),它将无法运行。我收到以下错误:

警告:stream\u socket\u client()[function.stream socket client]:无法连接到ssl://gateway.sandbox.push.apple.com:2195 (连接被拒绝)在../send notification.php在线18 连接失败。连接被拒绝

这是第18行:

$fp=stream\u socket\u客户端('ssl://gateway.sandbox.push.apple.com:2195“,$err,$errstr,60,STREAM\u CLIENT\u CONNECT,$ctx)

我知道.pem文件的密码是正确的。问题是如果我不能使用这个端口,我该怎么办?有什么免费服务我可以使用吗?我知道80号端口是开着的

我听说使用
curl()

如果能给我指出正确的方向,我将不胜感激。

尝试使用端口2196

我也遇到过类似的问题,即使使用cURL,您也会遇到这个问题。与主机提供商再次检查传出端口(21952196)是否已打开或阻止。
或者尝试telnet
ssl://gateway.sandbox.push.apple.com:2195

并检查您得到的响应。如果端口已打开,您将被连接。

为了向设备发送通知,需要在防火墙中启用2195端口。 出于安全原因,一些组织禁用防火墙中的这些端口。 2196端口用于反馈服务,该端口也应在防火墙中打开。
如果不打开这些端口,消息就无法传送到APN。

我的当前主机提供商也有同样的问题。 您可以切换到其他提供商 -或 只需“购买”一个经济型灯具VPS(3欧元/月)。
您可以在每个共享主机中禁用2195端口,您可以请求启用此端口,但大多数共享主机公司都不启用此端口,因此如果您要执行ios推送通知,我建议您使用虚拟专用服务器(VPS)您可以轻松配置ios推送通知。

我相信以下是您需要的

$url = 'https://gateway.sandbox.push.apple.com:2195';
$cert = 'AppCert.pem';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSLCERT, $cert);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, "passphrase");
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"device_tokens": ["458e5939b2xxxxxxxxxxx3"], "aps": {"alert": "test message one!"}}');

$curl_scraped_page = curl_exec($ch);

更多信息可以在这里找到:

我想是提供商阻止了向外的连接,甚至是苹果的服务器你是不是
$url=https://gateway.sandbox.push.apple.com:2195';2195
被阻止时,code>是否工作?这就是我们在这里讨论的内容。@Ans OP从未提到端口被阻塞。这只是一个空想。OP只是说它被拒绝了。如何在AmazonEC2服务器上打开这些端口?