从我的服务器PHP发送推送通知

时间:2011-04-26 16:31:54

标签: php iphone sockets apple-push-notifications

我试图从我的localhost发送推送通知到我的iDevices都正常工作但是在PHP错误日志中我收到了下面的警告为什么?

注意:我收到所有设备上的推送

警告:

PHP Warning:  socket_close(): supplied resource is not a valid Socket resource in /Applications/MAMP/htdocs/Push/SendPush.php on line xxx

我的一些代码:

//....
$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);
//...

socket_close($apns);
fclose($apns);

2 个答案:

答案 0 :(得分:8)

Apple很可能在收到您的有效负载后终止连接。

要使警告静音,请进行以下更改:

@socket_close($apns);

答案 1 :(得分:1)

如果出现错误,

stream_socket_client()将返回false。你应该明确地测试它:

$apns = stream_socket_client(...);
if ($apns === FALSE) then
    die("Error while getting stream socket ($error): $errorString");
}

其中$ error / $ errorString是您在stream_socket_client()调用中指定的那些。