PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP无法与Apple通知网关进行套接字连接大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
免责声明:在SO上我发现了许多类似的问题和一些答案,但没有一个解决了我的问题.

我有这个简单的PHP代码

<?PHP
    $deviCEToken = "myDeviCEToken";
    $message = "Hello from server";
    $badge = 1;
    $sound = "default";

    // Construct the notification payload
    $bodY['aps'] = array(
        'alert' => $message
    );

    if ($badgE) {
        $bodY['aps']['badge'] = $badge;
    }

    if ($sound) {
        $bodY['aps']['sound'] = $sound;
    }

    /* End of Configurable Items */
    $ctx = stream_context_create();
    stream_context_set_option($ctx,'ssl','local_cert','my.pem');

    $fp = stream_socket_client("ssl://gateway.sandBox.push.apple.com:2195",$err,$errstr,60,STREAM_CLIENT_CONNECT,$ctX);

    if (!$fp) {
        print "Failed to connect $err $errstrn";
        return;
    } else {
        print "Connection OK\n";
    }

    $payload = json_encode($body);
    $msg = chr(0) . pack("n",32) . pack("H*",str_replace(" ","",$deviCEToken)) . pack("n",strlen($payload)) . $payload;
    print "sending message :" . $payload . "\n";
    fwrite($fp,$msg);
    fclose($fp);
?>

从浏览器调用时我收到:

知道发生了什么事吗?

来自互联网的一些随机发现可能会有所帮助:

>这可能是证书问题.尝试使用流选项allow_self_signed和verify_peer来检查它.>尝试使用explicitely sslv2://或sslv3://?>“/ dev / urandom”上的权限问题

大佬总结

以上是大佬教程为你收集整理的PHP无法与Apple通知网关进行套接字连接全部内容,希望文章能够帮你解决PHP无法与Apple通知网关进行套接字连接所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。