J'essaie d'utiliser les notifications push Web avec le protocole push Web dans mon application. Pour utiliser l'API Push avec VAPID, j'ai besoin d'un applicationServerKey
.Générez des clés VAPID en Java et transmettez-les à JavaScript PushManager
La méthode PushManager subscribe
prend en paramètre une clé VAPID (clé publique seule) et donne un point d'extrémité d'abonnement et des clés pour pousser les messages.
Pour générer des clés VAPID, j'utilise node.js (package google web-push
) et openssl
jusqu'à maintenant. Mais dans mon cas d'utilisation, les clés VAPID doivent être générées dans Java et transmises à JavaScript pour s'abonner à partir du navigateur.
J'essaye avec le code ci-dessous dans Java de générer des clés VAPID. Je suis en mesure de créer des clés avec succès mais quand je passe la clé publique générée (chaîne codée en base64), la méthode subscribe
renvoie un dicton d'erreur:
Impossible d'enregistrer travailleur de service. DOMException: Échec de l'exécution 'subscribe' sur 'PushManager': Le applicationServerKey fourni n'est pas valide ..
S'il vous plaît me aider à résoudre ce problème. Ci-dessous est mon code Java:
ECNamedCurveParameterSpec parameterSpec =
ECNamedCurveTable.getParameterSpec("prime256v1");
KeyPairGenerator keyPairGenerator =
KeyPairGenerator.getInstance("ECDH", "BC");
keyPairGenerator.initialize(parameterSpec);
KeyPair serverKey = keyPairGenerator.generateKeyPair();
PrivateKey priv = serverKey.getPrivate();
PublicKey pub = serverKey.getPublic();`
System.out.println(Base64.toBase64String(pub.getEncoded()));
Salut - Tous chance? Pouvez-vous me fournir des indications? – csharpnewbie