3
當有人使用增強版協議時,有人知道如何從Apple推送通知服務獲取錯誤響應嗎?Apple推送通知增強格式
當有人使用增強版協議時,有人知道如何從Apple推送通知服務獲取錯誤響應嗎?Apple推送通知增強格式
根據蘋果文檔如果我們使用增強推送協議的版本中,我們可以從信道錯誤響應,錯誤respose格式:
COMMAND(1個字節)| STATUS(1個字節)| ID(4 字節)
狀態:
0: 'No errors encountered' 1: 'Processing error' 2: 'Missing device token' 3: 'Missing topic' 4: 'Missing payload' 5: 'Invalid token size' 6: 'Invalid topic size' 7: 'Invalid payload size' 8: 'Invalid token' 255: 'None (unknown)'
此處示例代碼:
...
socket = SSLSocket (
socket.socket()
, ssl_version = ssl.PROTOCOL_SSLv3
, certfile
)
socket.connect(apnsHost, apnsPort)
len_written = connectionContext.write(socket)
errors = []
# Wait for input from socket
inputready = select.select ([socket], [],[], 1)[0]
if inputready:
replyBlock = channel.recv (6)
errors = [] #will be filled with error responses
while replyBlock:
#error-response packet
#COMMAND(1)|STATUS(1)|ID(4)
command, status, id = struct.unpack_from('!BBL', replyBlock)
if status != 0:
errors.append((command, status, id))
replyBlock = channel.recv (6)