3
Кто-нибудь знает, как получить ответ об ошибке от службы push-уведомления Apple, когда используется расширенная версия протокола?Apple push notification расширенный формат
Кто-нибудь знает, как получить ответ об ошибке от службы push-уведомления Apple, когда используется расширенная версия протокола?Apple push notification расширенный формат
Согласно Apple, документации, если мы используем расширенную версию протокола Нажимаем мы можем получить сообщение об ошибке от канала, ошибки откоса формат:
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)