Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Curl failed: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to fcm.googleapis.com:443 in Codeigniter

I integrated Fire-base Notification CRUL Code with Codeigniter. sometimes I am getting an error but not all the times.

I have integrated below code to the controller

Controller Code

$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);
}

Model Code

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);

        // 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;
    }

While running this sometimes I am getting the error

Curl failed: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to fcm.googleapis.com:443

like image 520
Karthick Anbazhagan Avatar asked Mar 22 '18 07:03

Karthick Anbazhagan


1 Answers

Try to add curl_setopt($ch, CURLOPT_SSLVERSION, 3);

like image 174
Denis Alimov Avatar answered Oct 22 '22 22:10

Denis Alimov