Сообщения GCM не доставляются в Chrome Packaged Apps(автономный режим)
Я использую https://github.com/ToothlessGear/node-gcm для отправки сообщения с помощью GCM в упакованные приложения Chrome.
Все работает нормально, если приложение Chrome запущено
Когда я отправляю сообщение, когда приложение chrome закрыто, эти сообщения не доставляются после запуска приложения. Я получаю message_id в результате на сервере.
Я также попытался использовать командную строку, столкнувшись с той же проблемой в командной строке тоже.
Код на стороне сервера (nodejs)
var GCM = require('node-gcm');
var gcmSender = new GCM.Sender(apiKey);
var sendGCMMessage = function(data, regIds, collapseKey, callback) {
var message = new GCM.Message({
priority: 'high',
collapseKey: collapseKey,
data: data
});
gcmSender.send(message, regIds,
function(err, result) {
callback(err, result)
})
}
Упакованные приложения:
//register
var senderIds = [senderId];
chrome.gcm.register(senderIds, function(registrationId) {
sendRegistrationIdToServer(registrationId, function(succeed) {
});
});
//listen to incoming messages
chrome.gcm.onMessage.addListener(function(message) {
console.log("gcm message")
});
1 ответ
Проблема заключалась в том, как я предполагал, что хром ведет себя.
В Chrome сообщение GCM доставляется, если Chrome запущен (и приложение закрыто). chrome запускает приложение и запускает прослушиватель onMessage, учитывая, что регистрация произошла в background.js. Или же сообщение отбрасывается.
В моем случае я не делал регистрацию в backgroud.js. Перенес мою регистрацию в backgroud.js и теперь она работает нормально