Während der Entwicklung web-push mit GCM und Chrom. Ich habe dieses Problem vor kurzem (vor ein paar Stunden alles funktioniert immer noch gut)web-push unbekanntes Problem, WebPushError "unerwarteten Antwortcode erhalten" 400
Ich bin nicht sicher, ob dies aufgrund einiger Änderungen bei GCM oder eine Ausfallzeit der Cloud passieren ... Alle Informationen werden geschätzt.
Mein Code
var payload = JSON.stringify({
title: 'notification title',
body: 'message body'
});
webPush.sendNotification(params.endpoint, {
userPublicKey: params.userPublicKey,
userAuth: params.userAuth,
payload: payload
}).then(function (res) {
// console.log of stuff
})
.catch(function(error){
console.log(error);
process.exit(1);
});
Trace:
{
WebPushError: Received unexpected response code
at IncomingMessage.<anonymous> (/var/www/***/pwa/node_modules/web-push /index.js:264:20)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:926:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
name: 'WebPushError',
message: 'Received unexpected response code',
statusCode: 400,
headers: {
'content-type': 'text/plain; charset=UTF-8',
date: 'Wed, 04 May 2016 11:35:13 GMT',
expires: 'Wed, 04 May 2016 11:35:13 GMT',
'cache-control': 'private, max-age=0',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1; mode=block',
server: 'GSE',
'alternate-protocol': '443:quic',
'alt-svc': 'quic=":443"; ma=2592000; v="33,32,31,30,29,28,27,26,25"',
'accept-ranges': 'none',
vary: 'Accept-Encoding',
connection: 'close'
},
body: 'JSON_PARSING_ERROR: Unexpected token END OF FILE at position 467.\n'
}
Ich empfehle die Verwendung von Diensten wie [Pushpad-Knoten] (https://github.com/pushpad/pushpad-node), wenn Sie nicht mit Low-Level-Details stören möchten – collimarco
Können Sie uns ein Beispiel für Ihre Nutzlast zeigen ? – Marco
@collimarco Ihr Vorschlag scheint mir sehr interessant. Aber leider ist die Anforderung ein dediziertes Push-Modul für das Projekt zu machen ... Der dritte Dienst wird sofort verweigert :( –