Notificações Apple Push Notificações SSL -- notifications campo com encryption campo com apns camp apple Relacionado O problema

Apple Push Notifications SSL Error


4
vote

problema

português

Os APNs funcionaram bem para vários meses até poucas semanas. Toda vez que enviamos notificações push a conexão aborta com o seguinte erro:

.

PHP ADVERTÊNCIA: FWRITE (): Operação SSL falhou com o código 1. Mensagens de erro OpenSSL: Erro: 1409F07F: Rotinas SSL: SSL3_WRITE_PENDENTES: RESK WRITE RETRY

Se eu reconectar e reenviar ou apenas reenviar a mensagem para o servidor Apple, obtenho o mesmo erro. Às vezes eu posso enviar para todos os dispositivos sem qualquer problema. Mas às vezes ele aborta no 900º dispositivo, ou no dispositivo de 2000. Não é o i-não coletado-não coletado-o-dispositivo-de-feedback-serviço-e-conjunto-all-the-dispositivos-para-inativo -Error. Estou me conectando ao serviço de feedback em intervalos regulares. É outro tipo de erro que não conheço. Algo mudou com a conexão SSL. Pode ser que a Apple tenha mudado algo com a conexão SSL? A Apple disse que isso não acontece. E eles não suportam PHP.

Nós usamos php 5.3.3-7 + squeeze3 com suhosin-patch (cli) (construído: junho 28 2011 08:24:40) . Esta é a versão mais recente do PHP estável para o Squeeze Debian Linux. Esta versão PHP usa openssl 0.9.8o (01 jun 2010) no nosso servidor.

por favor ajude.

english

The APNS worked fine for various month until few weeks. Every time we send Push Notifications the connection aborts with the following error:

PHP Warning: fwrite(): SSL operation failed with code 1. OpenSSL Error messages: error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry

If I reconnect and resend or only resend the message to the Apple server I get the same error. Sometimes I can send to all devices without any problem. But sometimes it aborts at the 900th device, or at the 2000th device. It's not the I-have-not-collected-the-devices-from-Feedback-service-and-set-all-the-devices-to-inactive-Error. I'm connecting to the Feedback Service at regular intervals. It's another kind of error I don't know. Something has changed with the SSL connection. Can it be that Apple changed something with the SSL connection? Apple said it doesn't. And they doesn't support PHP.

We use PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40). This is the newest stable PHP version for Debian Linux Squeeze. This PHP version uses OpenSSL 0.9.8o (01 Jun 2010) on our server.

Please help.

        

Lista de respostas

4
 
vote

tinha um problema semelhante no Python, acho que as bibliotecas SSL subjacentes são as mesmas para que a solução seja semelhante.

ssl3_write_pending parece ser causado quando uma gravação de soquete falha, então você tenta escrever novamente. Nesse caso, por qualquer motivo ssl_write exige que você tente novamente a gravação com os mesmos bytes exatos como a gravação original ou então omite o erro ssl_write_pending.

O padrão de erros que eu estava vendo foi o tempo limite de conexão, em seguida, muitos erros ssl_write_pending. Isso foi porque primeiro uma das minhas escrito falhou (digamos com talvez um erro de timeout ou erro fechado de conexão porque eu envio uma solicitação de push desonesto), então depois que esse erro eu estava continuamente tentando reutilizar o soquete quebrado (e ele estava devolvido o erro ssl_write_pending menos do que informativo)

Tem certeza de que você está usando uma nova conexão de soquete quando "reconectar e reenviar"? Porque eu não teria pensado que você deveria obter ssl_write_pendendo em uma nova conexão de soquete ao servidor APNS.

Outra coisa que pode ajudar é usar o formato de notificação aprimorado, porque, se você acidentalmente enviar um empurrão quebrado para o servidor Apple, ele enviará um código de erro antes de fechar a conexão em você. Se você ainda não está usando aprimorado, então seria bom fazê-lo porque, então, você pode se certificar de que você não está fazendo erros simples como token errado ou carregar coisas demais.

 

Had a similar problem in python, I guess the underlying ssl libraries are the same so the solution might be similar.

SSL3_WRITE_PENDING seems to be caused when a socket write fails then you try to write again. In this case for whatever reason SSL_write requires you to retry the write with the exact same bytes as the original write or else it omits the SSL_WRITE_PENDING error.

The pattern of errors I was seeing was Connection Timeout, then lots of SSL_WRITE_PENDING errors. This was because first one of my writes failed (say with maybe a timeout error or connection closed error because I send a dodgy push request), then after that error I was continually trying to re-use the broken socket (and it was giving back the less-than-informative SSL_WRITE_PENDING error)

Are you sure that you're using a new socket connection when you 'reconnect and resend'? Because I wouldn't have thought you should get SSL_WRITE_PENDING on a fresh socket connection to the APNS server.

Another thing that could help is using the enhanced notification format, because then if you accidentally send a broken push to the Apple server, it will send you an error code back before closing the connection on you. If you're not already using enhanced then it would be good to do so because then you can make sure you're not making simple errors like wrong token or payload too long things.

 
 

Perguntas relacionadas

2  Notificações do push do aplicativo do iPhone Gmail não funcionam  ( Iphone gmail app push notifications not working ) 
Notificações push no aplicativo do Gmail no meu iPhone não estão mais funcionando corretamente. Eu tenho o primário apenas selecionado para minhas notificaçõe...

3  Como faço para obter notificações push iical trabalhando?  ( How do i get ical push notifications working ) 
Se eu atualizar um evento no meu iPhone 3GS executando o iOS 4.3.3, ele é atualizado corretamente no site do MobileMe calendário, mas não no iCal - eu tenho q...

3  Push notificações não está mais funcionando?  ( Push notifications no longer working ) 
Push Notificações para qualquer aplicativo não está mais funcionando com a minha rede Home WiFi. Eu estou executando um iPhone 4 com iOS 4.3.2. Eu tentei 5223...

0  Apple Push Notification Reliablity  ( Apple push notification reliablity ) 
Eu tenho um aplicativo suportado em Android e iOS. O aplicativo precisa de um serviço de plano de fundo que atinge um servidor remoto a cada minuto. O trabalh...

4  Como selecionar qual dispositivo IOS recebe notificações push (para o Facebook)  ( How to select which ios device receives push notifications for facebook ) 
Eu tenho um iPad 2 e um iPhone 3GS, ambos os quais têm o aplicativo oficial do Facebook. Desde que eu configurei o Facebook no meu iPad, apenas meu iPad tem r...

19  Como posso desativar as notificações push para aplicativos individuais no iOS 5?  ( How can i turn off push notifications for individual apps in ios 5 ) 
Quando um aplicativo é instalado primeiro, ocasionalmente pergunta se você gostaria de receber notificações push para esse aplicativo. Normalmente clico em "n...

2  IOS 10 Conteúdo e Extensão de Serviço [Fechado]  ( Ios 10 content and service extension ) 
. FECHADO. Esta questão é off-tópico . Atualmente não está aceitando respostas. Quer melh...

1  App iOS usando o pesquisamento para recuperar os dados mais recentes  ( Ios app using polling to retrieve newest data ) 
Atualmente, temos um aplicativo iOS no desenvolvimento que usa o método baseado em pesquisa para recuperar os dados mais recentes da API de REST. se o aplicat...

4  Notificações Apple Push Notificações SSL  ( Apple push notifications ssl error ) 
Os APNs funcionaram bem para vários meses até poucas semanas. Toda vez que enviamos notificações push a conexão aborta com o seguinte erro: . PHP ADVERTÊNCI...

1  Fazendo um alerta de notificação por push mais agressivo  ( Making a push notification alert more aggressive ) 
É possível alterar como uma notificação por push se comporta quando é recebido em um dispositivo iOS e / ou relógio da Apple? Eu pergunto porque tenho um ap...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.