简体   繁体   English

谷歌云消息传递 (fake_message_id)

[英]Google Cloud Messaging (fake_message_id)

I have node.js server:我有 node.js 服务器:

var gcm = require('node-gcm');

// create a message with default values
var message = new gcm.Message();

// or with object values
var message = new gcm.Message({
    collapseKey: 'demo',
    delayWhileIdle: true,
    timeToLive: 3,
    data: {
        key1: 'message1',
        key2: 'message2'
    }
});

var sender = new gcm.Sender('AIzaSyChp2jTQsgPkLaaVgFh6yoovu1Td7tuQMo');
var registrationIds = [];

// OPTIONAL
// add new key-value in data object
message.addDataWithKeyValue('key1','message1');
message.addDataWithKeyValue('key2','message2');

// or add a data object
message.addDataWithObject({
    key1: 'message1',
    key2: 'message2'
});

// or with backwards compability of previous versions
message.addData('key1','message1');
message.addData('key2','message2');


message.collapseKey = 'demo';
message.delayWhileIdle = true;
message.timeToLive = 3;
message.dryRun = true;
// END OPTIONAL

// At least one required
registrationIds.push('APA91bGV0W6lgapC07aHc-sQdd462f_lCoUY0r5mqVtdFX1ZfK31njMUeyVXXXXXXXXXXXXXXXXXXXXXXXXX0SiAp29dkyxdJ5Y8Cl2tO1aih0KeViA9hK3Q47atoU8qsD6ITbg');


/**
 * Params: message-literal, registrationIds-array, No. of retries, callback-function
 **/
sender.send(message, registrationIds, 4, function (err, result) {
    console.log(result);
});

I got an:我得到了一个:

{ multicast_id: -1, success: 1, failure: 0, canonical_ids: 0, results: {multicast_id:-1,成功:1,失败:0,canonical_ids:0,结果:
[ { message_id: fake_message_id' } ] } [ { message_id: fake_message_id' } ] }

And message does not send to receivers.并且消息不会发送给接收者。

What does fake_message_id mean? fake_message_id 是什么意思?

Looking at your code, I can see that you set the property dryRun of the message to true:查看您的代码,我可以看到您将消息的属性 dryRun 设置为 true:

message.dryRun = true;

By doing this you are telling the Google servers that this is a testing message to see if all keys are properly configured.通过这样做,您告诉 Google 服务器这是一条测试消息,以查看是否所有密钥都已正确配置。 If you comment out that line, or set the property to false (its default value) then the message will be handled as a real message.如果您注释掉该行,或将该属性设置为 false(其默认值),则该消息将作为真实消息进行处理。

DryRun answers are also easily spotted by their multicast_id, which will always be -1 DryRun 答案也很容易被他们的multicast_id 发现,它总是-1

For token that is invalid, it will show message like below:对于无效的令牌,它将显示如下消息:

{"error":"NotRegistered"}]}

Or或者

{"error":"InvalidRegistration"}]}

With this in the response:在回应中这样说:

"success":0,"failure":1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM