我需要用php服務器實現蘋果推送通知。我認爲連接正常工作,但由於某種原因蘋果服務器拒絕該信息。蘋果推送通知..拒絕?
我得到這個錯誤:
"error 0errorString
\nFatal error: Call to undefined function socket_close() in /home/www/76cdd1fbdfc5aca0c9f07f489ecd9188/web/mobileApp/handleRequest.php on line 420
\n"
這是我簡單的代碼(用假消息,只是爲了測試):
$payload['aps'] = array('alert' => 'This is the alert text', 'badge' => unread, 'sound' => 'default');
$payload['server'] = array('serverId' => $serverId, 'name' => $name);
$payload = json_encode($payload);
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'ck.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);
echo "error " . $error;
echo "errorString" . $errorString;
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
socket_close($apns);
fclose($apns);
echo "Sent";
感謝
反正你應該使用'stream_socket_shutdown()'。 socket_close用於你通過socket_open/socket_accept打開的套接字,你還沒有完成。 –