因此,如果我使用此测试链接
,我的GCM推送消息将起作用http://www.androidbegin.com/tutorial/gcm.html
这是回复
{ "multicast_id":7724943165862866717,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[{"message_id":"0:1418649384921891% 7fd2b314f9fd7ecd"}]}
但是,如果我使用toothlessgear / node-gcm lib使用节点推送服务来推送我自己的服务 https://github.com/ToothlessGear/node-gcm我在服务器上收到成功消息,但没有消息到达客户端
{ multicast_id: 5130374164465991000,
success: 1,
failure: 0,
canonical_ids: 0,
results: [ { message_id: '0:1418649238305331%7fd2b3145bca2e79' } ] }
我也使用pushwoosh尝试相同的消息,推送woosh也不起作用。为什么我在服务器上获得成功消息,但在后两个服务上没有在客户端上收到推送。是否需要进行某种ip配置或某种证书?我使用了相同的google api服务器密钥,该密钥对所有这3项服务中的所有ips开放。
为什么响应在后者上显示成功但在客户端没有收到消息?
节点服务服务器端代码
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('insert Google Server API Key here');
var registrationIds = ['regId1'];
/**
* Params: message-literal, registrationIds-array, No. of retries, callback-function
**/
sender.send(message, registrationIds, 4, function (err, result) {
console.log(result);
});
答案 0 :(得分:1)
所以推送正确发送,我的问题是客户端上的cordova插件,需要设置“消息”或“标题”的android负载。巧合的样本只是设置了消息属性,这就是它工作的原因。
更新代码以将以下内容添加到数据
数据:{message:'test'}
正常工作