|
@ -6,19 +6,19 @@
|
|
"use strict";
|
|
"use strict";
|
|
|
|
|
|
let RedisModel = require('../redis.model');
|
|
let RedisModel = require('../redis.model');
|
|
let GeTui = require('getui/GT.push');
|
|
|
|
let Target = require('getui/getui/Target');
|
|
|
|
|
|
|
|
let APNTemplate = require('getui/getui/template/APNTemplate');
|
|
|
|
let BaseTemplate = require('getui/getui/template/BaseTemplate');
|
|
|
|
let APNPayload = require('getui/payload/APNPayload');
|
|
|
|
let SimpleAlertMsg = require('getui/payload/SimpleAlertMsg');
|
|
|
|
let NotyPopLoadTemplate = require('getui/getui/template/NotyPopLoadTemplate');
|
|
|
|
let LinkTemplate = require('getui/getui/template/LinkTemplate');
|
|
|
|
let NotificationTemplate = require('getui/getui/template/NotificationTemplate');
|
|
|
|
let TransmissionTemplate = require('getui/getui/template/TransmissionTemplate');
|
|
|
|
let SingleMessage = require('getui/getui/message/SingleMessage');
|
|
|
|
let AppMessage = require('getui/getui/message/AppMessage');
|
|
|
|
|
|
// let GeTui = require('getui/GT.push');
|
|
|
|
// let Target = require('getui/getui/Target');
|
|
|
|
//
|
|
|
|
// let APNTemplate = require('getui/getui/template/APNTemplate');
|
|
|
|
// let BaseTemplate = require('getui/getui/template/BaseTemplate');
|
|
|
|
// let APNPayload = require('getui/payload/APNPayload');
|
|
|
|
// let SimpleAlertMsg = require('getui/payload/SimpleAlertMsg');
|
|
|
|
// let NotyPopLoadTemplate = require('getui/getui/template/NotyPopLoadTemplate');
|
|
|
|
// let LinkTemplate = require('getui/getui/template/LinkTemplate');
|
|
|
|
// let NotificationTemplate = require('getui/getui/template/NotificationTemplate');
|
|
|
|
// let TransmissionTemplate = require('getui/getui/template/TransmissionTemplate');
|
|
|
|
// let SingleMessage = require('getui/getui/message/SingleMessage');
|
|
|
|
// let AppMessage = require('getui/getui/message/AppMessage');
|
|
|
|
|
|
let log = require("../../util/log.js");
|
|
let log = require("../../util/log.js");
|
|
let configFile = require('../../include/commons').CONFIG_FILE;
|
|
let configFile = require('../../include/commons').CONFIG_FILE;
|
|
@ -28,8 +28,8 @@ class Pusher extends RedisModel {
|
|
constructor() {
|
|
constructor() {
|
|
super();
|
|
super();
|
|
|
|
|
|
this.getuiConfig = config.getTuiConfig;
|
|
|
|
this.gt = new GeTui(this.getuiConfig.HOST, this.getuiConfig.APPKEY, this.getuiConfig.MASTERSECRET);
|
|
|
|
|
|
// this.getuiConfig = config.getTuiConfig;
|
|
|
|
// this.gt = new GeTui(this.getuiConfig.HOST, this.getuiConfig.APPKEY, this.getuiConfig.MASTERSECRET);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@ -42,30 +42,30 @@ class Pusher extends RedisModel {
|
|
* @param handler
|
|
* @param handler
|
|
*/
|
|
*/
|
|
pushToSingleViaAPN(message, customData, type, deviceToken,badge, handler) {
|
|
pushToSingleViaAPN(message, customData, type, deviceToken,badge, handler) {
|
|
try {
|
|
|
|
let simpleAlertMsg = new SimpleAlertMsg();
|
|
|
|
simpleAlertMsg.alertMsg = message;
|
|
|
|
|
|
|
|
let payload = new APNPayload();
|
|
|
|
payload.alertMsg = simpleAlertMsg;
|
|
|
|
payload.badge = badge;
|
|
|
|
payload.contentAvailable = 1;
|
|
|
|
payload.category = type;
|
|
|
|
payload.customMsg.payload1 = customData;
|
|
|
|
let template = new APNTemplate();
|
|
|
|
template.setApnInfo(payload);
|
|
|
|
let singleMessage = new SingleMessage();
|
|
|
|
singleMessage.setData(template);
|
|
|
|
this.gt.pushAPNMessageToSingle(this.getuiConfig.APPID, deviceToken, singleMessage, function (err, res) {
|
|
|
|
if (err) {
|
|
|
|
log.error('Push via APN failed:' + e);
|
|
|
|
} else {
|
|
|
|
handler(null, res);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} catch (e) {
|
|
|
|
log.error('Push via APN failed:'+deviceToken+":" + e);
|
|
|
|
}
|
|
|
|
|
|
// try {
|
|
|
|
// let simpleAlertMsg = new SimpleAlertMsg();
|
|
|
|
// simpleAlertMsg.alertMsg = message;
|
|
|
|
//
|
|
|
|
// let payload = new APNPayload();
|
|
|
|
// payload.alertMsg = simpleAlertMsg;
|
|
|
|
// payload.badge = badge;
|
|
|
|
// payload.contentAvailable = 1;
|
|
|
|
// payload.category = type;
|
|
|
|
// payload.customMsg.payload1 = customData;
|
|
|
|
// let template = new APNTemplate();
|
|
|
|
// template.setApnInfo(payload);
|
|
|
|
// let singleMessage = new SingleMessage();
|
|
|
|
// singleMessage.setData(template);
|
|
|
|
// this.gt.pushAPNMessageToSingle(this.getuiConfig.APPID, deviceToken, singleMessage, function (err, res) {
|
|
|
|
// if (err) {
|
|
|
|
// log.error('Push via APN failed:' + e);
|
|
|
|
// } else {
|
|
|
|
// handler(null, res);
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// } catch (e) {
|
|
|
|
// log.error('Push via APN failed:'+deviceToken+":" + e);
|
|
|
|
// }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@ -79,97 +79,97 @@ class Pusher extends RedisModel {
|
|
* @param handler
|
|
* @param handler
|
|
*/
|
|
*/
|
|
pushToSingleViaAndroid(title, message, customData, clientId, appInBg, handler) {
|
|
pushToSingleViaAndroid(title, message, customData, clientId, appInBg, handler) {
|
|
if (appInBg == 1) {
|
|
|
|
this._pushAndroidNotify(clientId, title, message, customData, handler);
|
|
|
|
} else {
|
|
|
|
this._pushAndroidTransmission(clientId, customData, handler);
|
|
|
|
}
|
|
|
|
|
|
// if (appInBg == 1) {
|
|
|
|
// this._pushAndroidNotify(clientId, title, message, customData, handler);
|
|
|
|
// } else {
|
|
|
|
// this._pushAndroidTransmission(clientId, customData, handler);
|
|
|
|
// }
|
|
}
|
|
}
|
|
|
|
|
|
_pushAndroidNotify(clientId, title, msg, data, handler) {
|
|
_pushAndroidNotify(clientId, title, msg, data, handler) {
|
|
let transmissionContent = {
|
|
|
|
pushtype: 'notify',
|
|
|
|
data: data
|
|
|
|
};
|
|
|
|
let template = new NotificationTemplate({
|
|
|
|
appId: this.getuiConfig.APPID,
|
|
|
|
appKey: this.getuiConfig.APPKEY,
|
|
|
|
title: title,
|
|
|
|
text: msg,
|
|
|
|
logo: '',
|
|
|
|
isRing: true,
|
|
|
|
isVibrate: true,
|
|
|
|
isClearable: true,
|
|
|
|
transmissionType: 1,
|
|
|
|
transmissionContent: JSON.stringify(transmissionContent)
|
|
|
|
});
|
|
|
|
|
|
|
|
//个推信息体
|
|
|
|
let message = new SingleMessage({
|
|
|
|
isOffline: true, //是否离线
|
|
|
|
offlineExpireTime: 3600 * 12 * 1000, //离线时间
|
|
|
|
data: template, //设置推送消息类型
|
|
|
|
pushNetWorkType: 0 //是否wifi ,0不限,1wifi
|
|
|
|
});
|
|
|
|
|
|
|
|
//接收方
|
|
|
|
let target = new Target({
|
|
|
|
appId: this.getuiConfig.APPID,
|
|
|
|
clientId: clientId
|
|
|
|
});
|
|
|
|
|
|
|
|
this.gt.pushMessageToSingle(message, target, function (err, res) {
|
|
|
|
if (err != null && err.exception != null && err.exception instanceof RequestError) {
|
|
|
|
let requestId = err.exception.requestId;
|
|
|
|
console.log(err.exception.requestId);
|
|
|
|
this.gt.pushMessageToSingle(message, target, requestId, function (err, res) {
|
|
|
|
handler(err, res);
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
handler(err, res);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
// let transmissionContent = {
|
|
|
|
// pushtype: 'notify',
|
|
|
|
// data: data
|
|
|
|
// };
|
|
|
|
// let template = new NotificationTemplate({
|
|
|
|
// appId: this.getuiConfig.APPID,
|
|
|
|
// appKey: this.getuiConfig.APPKEY,
|
|
|
|
// title: title,
|
|
|
|
// text: msg,
|
|
|
|
// logo: '',
|
|
|
|
// isRing: true,
|
|
|
|
// isVibrate: true,
|
|
|
|
// isClearable: true,
|
|
|
|
// transmissionType: 1,
|
|
|
|
// transmissionContent: JSON.stringify(transmissionContent)
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// //个推信息体
|
|
|
|
// let message = new SingleMessage({
|
|
|
|
// isOffline: true, //是否离线
|
|
|
|
// offlineExpireTime: 3600 * 12 * 1000, //离线时间
|
|
|
|
// data: template, //设置推送消息类型
|
|
|
|
// pushNetWorkType: 0 //是否wifi ,0不限,1wifi
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// //接收方
|
|
|
|
// let target = new Target({
|
|
|
|
// appId: this.getuiConfig.APPID,
|
|
|
|
// clientId: clientId
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// this.gt.pushMessageToSingle(message, target, function (err, res) {
|
|
|
|
// if (err != null && err.exception != null && err.exception instanceof RequestError) {
|
|
|
|
// let requestId = err.exception.requestId;
|
|
|
|
// console.log(err.exception.requestId);
|
|
|
|
// this.gt.pushMessageToSingle(message, target, requestId, function (err, res) {
|
|
|
|
// handler(err, res);
|
|
|
|
// });
|
|
|
|
// } else {
|
|
|
|
// handler(err, res);
|
|
|
|
// }
|
|
|
|
// });
|
|
}
|
|
}
|
|
|
|
|
|
_pushAndroidTransmission(clientId, customData, handler) {
|
|
_pushAndroidTransmission(clientId, customData, handler) {
|
|
let transmissionContent = {
|
|
|
|
pushtype: 'transmission',
|
|
|
|
data: customData
|
|
|
|
};
|
|
|
|
|
|
|
|
let template = new TransmissionTemplate({
|
|
|
|
appId: this.getuiConfig.APPID,
|
|
|
|
appKey: this.getuiConfig.APPKEY,
|
|
|
|
transmissionType: 2,
|
|
|
|
transmissionContent: JSON.stringify(transmissionContent)
|
|
|
|
});
|
|
|
|
|
|
|
|
// 个推信息实体
|
|
|
|
let message = new SingleMessage({
|
|
|
|
isOffline: true, //是否离线
|
|
|
|
offlineExpireTime: 3600 * 12 * 1000, //离线时间
|
|
|
|
data: template, //设置推送消息类型
|
|
|
|
pushNetWorkType: 0 //是否wifi ,0不限,1 wifi
|
|
|
|
});
|
|
|
|
|
|
|
|
// 接收方
|
|
|
|
let target = new Target({
|
|
|
|
appId: this.getuiConfig.APPID,
|
|
|
|
clientId: clientId
|
|
|
|
});
|
|
|
|
|
|
|
|
this.gt.pushMessageToSingle(message, target, function (err, res) {
|
|
|
|
if (err != null && err.exception != null && err.exception instanceof RequestError) {
|
|
|
|
let requestId = err.exception.requestId;
|
|
|
|
log.info("Push android single failed without rquestId, retry with requestId: ", err.exception.requestId);
|
|
|
|
|
|
|
|
this.gt.pushMessageToSingle(message, target, requestId, function (err, res) {
|
|
|
|
if (err) {
|
|
|
|
log.error("Push android single via transmission with requestId failed: ", err);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
// let transmissionContent = {
|
|
|
|
// pushtype: 'transmission',
|
|
|
|
// data: customData
|
|
|
|
// };
|
|
|
|
//
|
|
|
|
// let template = new TransmissionTemplate({
|
|
|
|
// appId: this.getuiConfig.APPID,
|
|
|
|
// appKey: this.getuiConfig.APPKEY,
|
|
|
|
// transmissionType: 2,
|
|
|
|
// transmissionContent: JSON.stringify(transmissionContent)
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// // 个推信息实体
|
|
|
|
// let message = new SingleMessage({
|
|
|
|
// isOffline: true, //是否离线
|
|
|
|
// offlineExpireTime: 3600 * 12 * 1000, //离线时间
|
|
|
|
// data: template, //设置推送消息类型
|
|
|
|
// pushNetWorkType: 0 //是否wifi ,0不限,1 wifi
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// // 接收方
|
|
|
|
// let target = new Target({
|
|
|
|
// appId: this.getuiConfig.APPID,
|
|
|
|
// clientId: clientId
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// this.gt.pushMessageToSingle(message, target, function (err, res) {
|
|
|
|
// if (err != null && err.exception != null && err.exception instanceof RequestError) {
|
|
|
|
// let requestId = err.exception.requestId;
|
|
|
|
// log.info("Push android single failed without rquestId, retry with requestId: ", err.exception.requestId);
|
|
|
|
//
|
|
|
|
// this.gt.pushMessageToSingle(message, target, requestId, function (err, res) {
|
|
|
|
// if (err) {
|
|
|
|
// log.error("Push android single via transmission with requestId failed: ", err);
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|