php - fread 需要更多时间才能在 php 中获得响应
问题描述
在我的项目中,具有 iOS 推送通知功能。因为我使用 fread 函数来获取状态码。
我的代码是,
$apns = stream_socket_client('ssl://gateway.push.apple.com:2195',
$err,
$errstr,
60,
STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,
$ctx);
$deviceIds = array(
'deviceID1',
'deviceID2',
'deviceID3',
'deviceID4'
);
foreach ($deviceIds as $deviceId) {
$payload = array();
$payload['aps'] = array(
'alert' => $message_ios,
'badge' => (int) $badge,
'sound' => 'default',
'lang' => "$language_type",
);
$payload['c'] = array(
'section_type' => $section_type
);
$payload = json_encode($payload);
$message = chr(0) . pack('n', 32) . pack('H*', $deviceId) . pack('n', strlen($payload)) . $payload;
$result = fwrite($apns, $message, strlen($message));
$response = fread($apns, 6);
$statusCode = $response['status_code'];
}
fclose($apns);
但是,当我尝试向多个设备发送通知并且为此只有一个 APN 连接时,fread 需要更多时间来获得响应。如果我尝试向一个设备 ID 发送通知,则此代码可以正常工作。如何解决问题?
请帮我。
解决方案
推荐阅读
- android - 无法使用端口转发在 Android 手机上调试 webapp
- c# - 如何在 asp-validation-for 中显示 ScalePrecision 错误消息?
- django - django返回404上传媒体文件
- django - 针对 Auth0 使用 social-auth-app-django 对 Django 站点进行身份验证的用户的管理员权限
- python - Pandas - 从 csv 计算相对时间
- html - 如何在 HTML 中制作这个特定的布局?右下角/正文包裹的文本
- jmeter - 在 Jmeter 中每 10 秒执行一次循环控制器
- c++ - 共享指针继承,无需先显式转换
- c# - windows 域外的应用程序服务器可以验证该域的用户吗?
- rabbitmq - centos7上无法启动rabbitmq-server