Hola a todos. Recientemente, mis proyectos dejaron de recibir notificaciones push en dispositivos iOS. Después del proceso de "búsqueda en Google", resultó que las notificaciones push para "manzanas" ahora deberían enviarse a través del protocolo http / 2.
HEADERS
- END_STREAM
+ END_HEADERS
:method = POST
:scheme = https
:path = /3/device/00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0
host = api.development.push.apple.com
authorization = bearer eyAia2lkIjogIjhZTDNHM1JSWDciIH0.eyAiaXNzIjogIkM4Nk5WOUpYM0QiLCAiaWF0I
jogIjE0NTkxNDM1ODA2NTAiIH0.MEYCIQDzqyahmH1rz1s-LFNkylXEa2lZ_aOCX4daxxTZkVEGzwIhALvkClnx5m5eAT6
Lxw7LZtEQcH6JENhJTMArwLf3sXwi
apns-id = eabeae54-14a8-11e5-b60b-1697f925ec7b
apns-expiration = 0
apns-priority = 10
apns-topic = <MyAppTopic>
DATA
+ END_STREAM
{ "aps" : { "alert" : "Hello" } }
Listing 8-3 shows a sample request constructed for a certificate that contains multiple topics.
A continuación se muestra un ejemplo de una solicitud a través del protocolo http / 2
. ASP.NET Framework IIS. Windows 2012R2. , HTTP/2 . - . . . "". ANDROID .
ASP.NET Core. ASP.NET Core Linux. Linux HTTP/2.
ASP.NET Core .
public class dotAPNSService : IDisposable
{
public event EventHandler OnTokenExpiredHandler;
private ApnsJwtOptions options = null;
public dotAPNSService(string bundle)
{
options = new ApnsJwtOptions()
{
BundleId = bundle, // com.org.test
CertContent = " ",//https://developer.apple.com/account/resources/authkeys/list
KeyId = " ",//https://developer.apple.com/account/resources/authkeys/list
TeamId = " "//https://developer.apple.com/account/resources/authkeys/list
};
}
public void SendNotifications(String[] deviceTokens, String title, String body)
{
if (deviceTokens == null || deviceTokens.Length <= 0)
{
return;
}
if (String.IsNullOrEmpty(title))
{
return;
}
if (String.IsNullOrEmpty(body))
{
return;
}
// once you've gathered all the information needed and created an options instance, it's time to call
var apns = ApnsClient.CreateUsingJwt(new HttpClient( ), options);
// start the process
foreach (String deviceToken in deviceTokens)
{
var push = new ApplePush(ApplePushType.Alert)
.AddAlert(title, body)
.AddToken(deviceToken);
Send(apns, push, deviceToken);
}
}
}
!!! . . .
NET.Core Docker. VPS REG.RU. VPS.
! . . . .
Visual Studio
.
Luego, simplemente se conecta a nuestro servidor a través de SSH. Las claves de acceso le serán enviadas por correo electrónico.
Ingrese el comando para iniciar su proyecto desde la ventana acoplable
docker run -d -p 80:80/tcp /
después de este comando, su proyecto estará disponible en http: // server ipaddress /
Además, en todos los proyectos, simplemente envío una solicitud de publicación a esta dirección con una serie de tokens de destinatario, encabezado y mensaje. Todo va y viene súper rápido.
PD: Puede vincular un nombre de dominio en la configuración de reg.ru.
Salir
Por el momento, todos los mensajes push se activan con normalidad. No se encontraron problemas con un paquete de este tipo. Incluso parece que las notificaciones push desaparecen mucho más rápido de lo que funcionaban antes. Espero que mi artículo ayude a quienes enfrentaron un problema similar.