php – ios Push Notification无法在服务器上运行
发布时间:2020-12-13 17:40:23 所属栏目:PHP教程 来源:网络整理
导读:我在本地机器上测试了推送通知,它运行正常.然后我使用相同的证书(“.pem”文件)将我的文件上传到真实服务器,并确保端口2195和2196是打开的. 我测试过: telnet gateway.sandbox.push.apple.com 2195 这是工作… root@server ~ # telnet gateway.sandbox.push
我在本地机器上测试了推送通知,它运行正常.然后我使用相同的证书(“.pem”文件)将我的文件上传到真实服务器,并确保端口2195和2196是打开的.
我测试过: telnet gateway.sandbox.push.apple.com 2195 这是工作… root@server ~ # telnet gateway.sandbox.push.apple.com 2195 Trying 17.149.34.54... Connected to gateway.sandbox.push.apple.com. Escape character is '^]'. 但是,当我从我的PHP脚本测试时,它返回:
有什么建议? 这是php代码: $ctx = stream_context_create(); stream_context_set_option($ctx,'ssl','local_cert',"path/to/certificate"); $fp = stream_socket_client("ssl://gateway.push.apple.com:2195",$error,$errorString,100,(STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT),$ctx); 解决方法
这段代码可以正常工作:
$device = 'sdfsdfsfsdffsd'; $payload['aps'] = array('alert' => 'Hello I am testing the server code ....','badge' => 1,'sound' => 'default'); $payload = json_encode($payload); $options = array('ssl' => array( 'local_cert' =>'ck.pem','passphrase' => 'abc123' )); $streamContext = stream_context_create(); stream_context_set_option($streamContext,$options); $apns = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195',60,STREAM_CLIENT_CONNECT,$streamContext); $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*',str_replace(' ','',$device)) . chr(0) . chr(strlen($payload)) . $payload; fwrite($apns,$apnsMessage); fclose($apns); 仅检查pem文件路径,并且端口已打开. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |