当前位置: 首页 > 知识库问答 >
问题:

无法连接到ssl://gateway.push.apple.com:2195(连接拒绝)

闾丘博
2023-03-14

几年前,我已经在Codeigniter(php)中实现了推送通知到我的项目中,直到10天前,一切都运行良好。我的. pem文件在我的本地服务器以及在线通知工具上运行良好。

错误:"stream_socket_client():无法连接到ssl://gateway.push.apple.com:2195(连接拒绝)"。

我正在使用以下功能:

public function applePushSend($deviceToken, $msg){

            $mode ='prod';

            $ctx = stream_context_create();

            if($mode=='dev'){
                $gateway = 'ssl://gateway.sandbox.push.apple.com:2195';
                stream_context_set_option($ctx, 'ssl', 'local_cert', 'pushcert_dev.pem');
            }else{
                $gateway = 'ssl://gateway.push.apple.com:2195';
                stream_context_set_option($ctx, 'ssl', 'local_cert', 'pushcert_prod.pem');
            }

            $fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

            if (!$fp){
            }else{

                $alert = array();
                $alert['title'] = "My Message";
                $alert['body'] = $msg;
                $body['aps']['alert'] = $alert;
                $body['aps']['badge'] = 1;
                $body['aps']['sound'] = 'default';
                $body['notificationtypeid'] = 4;

                $payload = json_encode($body);
                $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
                $pushresult = fwrite($fp, $msg, strlen($msg));
            }
            fclose($fp);
            return($pushresult);
        }

共有1个答案

朱啸
2023-03-14

我将代码更改为:

$streamContext = stream_context_create(array('ssl' => array(
                      'local_cert' => $this->_sProviderCertificateFile
                    )));

它就像一个魅力!

 类似资料:
  • 问题内容: 每当我尝试启动eclipse调试(用于服务器端代码)时,我都会收到以下错误 无法连接到远程VM。 拒绝连接。 可能是什么问题?我已经尝试了网络上的大多数解决方案,但是都没有解决我的问题。谁能帮我解决这个问题?提前谢谢.. 问题答案: 您正在使用哪个服务器? 就像已经说过的: 在调试配置中,您必须定义服务器的正确端口(GF:9009 / Tomcat:8000) 您必须将服务器的JVM属

  • 问题内容: 在Digitalocean的Ubuntu 16.4中安装了Redis。 我已经通过编辑编辑将默认的redis服务器更改为我在Digitalocean中的IP 那之后,我试着和所有回应这样的: 在127.0.0.1:6379无法连接到Redis的:连接被拒绝 但是如果 我得到: 这正常吗?或者该怎么办? 问题答案: 您应该做什么取决于您希望它如何工作… 如果您希望能够通过任何网络接口连接

  • 问题内容: 我正在尝试使用Flask在Raspberry Pi上运行一个简单的Web服务器。当我运行Flask应用程序时,它说: 在http://127.0.0.1:5000/上运行 但是,当我在笔记本电脑的Chrome中输入此地址时, ERR_CONNECTION_REFUSED 我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。我需要怎么做才能从另一台计算机连接? 问

  • 每次运行Rails4.0服务器时,都会得到这个输出。 我正在运行小牛OS X10.9,所以我不知道这是不是问题所在。我已经试了我能试的一切,但似乎都没有效果。我已经卸载并安装了postgres和pg gem多次了。 这是我的database.yml文件

  • 我正在使用jenkins swarm插件将从节点连接到主节点。但是,它给出了错误。