4
我已經成功設法連接到Apple的反饋APNS服務器,但我不確定如何解壓從fread()獲得的二進制數據。有誰知道如何做到這一點?該文件說前4個字節是時間戳,接下來的2個是令牌長度,其餘的是設備令牌。PHP如何解壓Apple APNS反饋數據
在調用fread之後,這些信息如何解壓縮爲可讀字符?
我已經成功設法連接到Apple的反饋APNS服務器,但我不確定如何解壓從fread()獲得的二進制數據。有誰知道如何做到這一點?該文件說前4個字節是時間戳,接下來的2個是令牌長度,其餘的是設備令牌。PHP如何解壓Apple APNS反饋數據
在調用fread之後,這些信息如何解壓縮爲可讀字符?
其實想通了,這似乎是更可靠:
$arr = unpack("H*", $devconts);
$rawhex = trim(implode("", $arr));
$feedbackTime = hexdec(substr($rawhex, 0, 8));
$feedbackDate = date('Y-m-d H:i', $feedbackTime);
$feedbackLen = hexdec(substr($rawhex, 8, 4));
$feedbackDeviceToken = substr($rawhex, 12, 64);
一旦你有你的二進制流,你可以這樣處理它:
while ($data = fread($stream, 38)) {
$feedback = unpack("N1timestamp/n1length/H*devtoken", $data);
// Do something
}
$反饋將包含元素「時間戳」,「長度」和「DEVTOKEN」關聯數組。