卷曲失败:OpenSSL SSL_connect:SSL_ERROR_SYSCALL与Codeigniter中的fcm.googleapis.com:443相关联

时间:2018-03-22 07:58:13

标签: php codeigniter

我将Fire-base Notification CRUL Code与Codeigniter集成在一起。有时我会收到错误,但不是所有时间。

我已将下面的代码集成到控制器

控制器代码

override fun onReceive(context: Context?, intent: Intent?) {
        Log.d("JJJ", "onReceive")

        storageClearSchedular = StorageClearSchedular(context!!, context!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager)
        storageClearSchedular.setAllSchedulars()

型号代码

$newDate=Date('m-d-Y H:i:s');

$test_str=$user->us_name. ' Clocked at '.$newDate;
$res = array();

$res['data']['title'] = $user->us_name.' - Clocked In';
$res['data']['is_background'] = "TRUE";
$res['data']['message'] = $test_str;
$res['data']['image'] = 'http://api.androidhive.info/images/minion.jpg';
$res['data']['payload'] = 'individual';
$res['data']['timestamp'] = date('Y-m-d G:i:s');
$res['data']['act_tab'] = 0;


$cur_id1=$this->db->query("Select token from devices")->result();

foreach($cur_id1 as $cur_id) {

    $fields = array('to' => $cur_id->token,'data' => $res);
    $this->notif_model->sendPushNotification($fields);
}

有时我正在运行此错误

  

卷曲失败:OpenSSL SSL_connect:与fcm.googleapis.com:443相关的SSL_ERROR_SYSCALL

2 个答案:

答案 0 :(得分:2)

尝试添加 curl_setopt($ch, CURLOPT_SSLVERSION, 3);

答案 1 :(得分:0)

function sendPushNotification($fields) {


        // Set POST variables
        $url = 'https://fcm.googleapis.com/fcm/send';

        $headers = array(
            'Authorization: key=MyServerKey',
            'Content-Type: application/json'
        );
        // Open connection
        $ch = curl_init();

        // Set the url, number of POST vars, POST data
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSLVERSION, 3);

        // Disabling SSL Certificate support temporarly
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

        // Execute post
        $result = curl_exec($ch);
        if ($result === FALSE) {
            die('Curl failed: ' . curl_error($ch));
        }

        // Close connection
        curl_close($ch);

        return $result;
    }