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

发布于 2024-11-03 14:04:17 字数 644 浏览 1 评论 0原文

我正在尝试从本地主机向我的 iDevice 发送推送通知,一切正常,但在 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);

I'am trying to send push notification from my localhost to my iDevices all work properly but in the PHP error log I got the warning below Why ?

NOTE: I receive the Push on all Devices

THE WARNING:

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

Some of My Code:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贩梦商人 2024-11-10 14:04:17

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

要消除警告,请进行以下更改:

@socket_close($apns);

Most likely Apple is terminating the connection after it receives your payload.

To silence the warning make the following change:

@socket_close($apns);
埋葬我深情 2024-11-10 14:04:17

如果出现错误,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() 调用中指定的那些。

stream_socket_client() returns false if there was an error. You should explicitly test for it:

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

where $error/$errorString are the ones you've specified in the stream_socket_client() call.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文