谷歌云消息传递(fake_message_id)

7

我有一个 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);
});

我收到了以下消息:

{ multicast_id: -1, success: 1, failure: 0, canonical_ids: 0, results:
[ { message_id: fake_message_id' } ] }

但是信息没有发送给接收者。

fake_message_id 是什么意思?

2个回答

31

看了您的代码,我发现您将消息的属性dryRun设置为true:

message.dryRun = true;

通过这样做,您告诉Google服务器这是一条测试消息,以查看所有密钥是否正确配置。 如果您注释掉该行或将属性设置为false(其默认值),则该消息将被处理为真实消息。

DryRun答案也很容易根据它们的multicast_id进行识别,该值始终为-1。


0
对于无效的令牌,它会显示以下消息:
{"error":"NotRegistered"}]}

或者

{"error":"InvalidRegistration"}]}

在响应中包含以下内容:

"success":0,"failure":1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接