发送推送通知后检查响应错误时遇到问题。这是我的设置:
从我的PHP服务器,我发送推送通知。这些通知以增强格式发送,因此我可以从Apple服务器获得错误响应。例如:错误#7“无效的有效负载大小”。
我检查错误的方法是读取套接字响应:
const ERROR_RESPONSE_SIZE = 6;
$errorResponse = @fread($this->_apnsSocket, self::ERROR_RESPONSE_SIZE);
当出现实际错误时,此方法可以正常工作。我的问题是:当没有错误时,“fread”调用不返回任何内容并继续加载。
任何人都可以帮我吗?谢谢你的帮助!
答案 0 :(得分:2)
你需要将stream_set_blocking($this->_apnsSocket, 0);
设置为0,这是非阻塞模式,因为成功时Apple不会发回任何内容,但是fread正在等待阻塞模式下的数据。