getting warning messages while sending push notification to multiple iphone device

拜拜、爱过 提交于 2019-12-10 21:36:06

问题


While i am sending push notifications to multiple iphone devices using php webservices i am getting warning messages like :

Warning: stream_socket_client() [function.stream-socket-client]: SSL: crypto enabling timeout in /home/sample_app/pushnotification.php on line 66

Warning: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto in /home/sample_app/pushnotification.php on line 66

Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.push.apple.com:2195 (Unknown error) in /home/sample_app/pushnotification.php on line 66

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/sample_app/pushnotification.php on line 79

This is my code :

$message='testing';
$q1="select devicetoken from tbl_devicetokens";
$re1 = mysql_query($q1);
while($row1=mysql_fetch_row($re1))
{
    pushMessage($row1[0],$message,'myapp');
}


function pushMessage($deviceToken,$message,$app) {
    echo "Sending iPhone Push Notifications to " . $deviceToken . "<br /><br />";
    echo "Your Message: " . $message . "<br /><br />";
    $time = time();
    $apnsHost = 'gateway.push.apple.com';
    $apnsPort = 2195;
    $apnsCert = 'apns-myapp.pem';
    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
    $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
    if($apns) {
            $payload = array();
            $payload['aps'] = array('alert' => $message, 'badge' => 0, 'sound' => 'default');
            $payload = json_encode($payload);
            $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
            fwrite($apns, $apnsMessage);
    } else { 
            echo "Connection Failed - iPhone Push Notifications Server";
            echo $errorString."<br />";
            echo $error."<br />";
    }
    //socket_close($apns);
    fclose($apns);
}

So, can any one tell me how to solve this problem


回答1:


might seem like a dumb answer, but have you tried your firewall / iptables? Those errors without further information look like connection issues to me. First thing you need to resolve is the timeout problem.




回答2:


Does this still happen when you push a single notification to a single device?

If it does:

  • Are you sure that you have the correct path to the certs?
  • Make sure that the cert file name does not contain other than alphabetic characters.

If not:

  • Make sure that you are using the correct cert for the correct device environment (development, production)
  • If a device is jailbroken it will not receive push notifications.


来源:https://stackoverflow.com/questions/17205925/getting-warning-messages-while-sending-push-notification-to-multiple-iphone-devi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!