我编写了以下脚本来阅读反馈数据。但是,由于某些原因,我没有从服务器接收任何数据。你能告诉我这个剧本的错误吗?此外,如果你有任何工作的PHP脚本的反馈服务,你可以分享它...
的问候, DD。
<?php
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
// Set time limit to indefinite execution
set_time_limit (0);
// Set the ip and port we will listen on
$address = 'ssl://feedback.sandbox.push.apple.com';
$port = 2196;
// Create a TCP Stream socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
echo "PHP Socket Server started at " . $address . " " . $port . "\n";
// Bind the socket to an address/port
socket_bind($sock, $address, $port) or die('Could not bind to address');
// Start listening for connections
socket_listen($sock);
//loop and listen
while (true) {
/* Accept incoming requests and handle them as child processes */
$client = socket_accept($sock);
// Read the input from the client – 1024 bytes
$input = socket_read($client, 1024);
}
// Close the client (child) socket
socket_close($client);
// Close the master sockets
socket_close($sock);
?>
答案 0 :(得分:1)
您必须充当客户,就像您发送通知一样。那一定是这样的:
<?php
$certFile = 'apns-dev.pem';
while (true) {
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $certFile);
//stream_context_set_option($ctx, 'ssl', 'passphrase', $this->certPass);
echo "try to open stream\n";
$fp = stream_socket_client('ssl://feedback.sandbox.push.apple.com:2196', $err, $errstr, 5, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print "Failed to connect". $err . $errstr. "\n";
exit();
} else {
echo 'Connected to feedback sandbox...';
while (($in = fread($fp, 1024)) != EOF) {
echo 'read '. $in . "\n";
}
socket_close($fp);
fclose($fp);
}
sleep(2000);
}
?>