mirror of
https://github.com/cnodejs/nodeclub.git
synced 2025-12-08 19:55:55 +00:00
增加极光推送
This commit is contained in:
parent
c5526043af
commit
cef8eb92bf
@ -1,24 +1,38 @@
|
||||
var models = require('../models');
|
||||
var eventproxy = require('eventproxy');
|
||||
var Message = models.Message;
|
||||
var User = require('../proxy').User;
|
||||
var push = require('../common/push');
|
||||
var messageProxy = require('../proxy/message');
|
||||
|
||||
exports.sendReplyMessage = function (master_id, author_id, topic_id, reply_id, callback) {
|
||||
var ep = new eventproxy();
|
||||
ep.fail(callback);
|
||||
var message = new Message();
|
||||
message.type = 'reply';
|
||||
message.master_id = master_id;
|
||||
message.author_id = author_id;
|
||||
message.topic_id = topic_id;
|
||||
message.reply_id = reply_id;
|
||||
message.save(callback);
|
||||
message.save(ep.done('message_saved'));
|
||||
ep.all('message_saved', function (msg) {
|
||||
push.send(message.type, author_id, master_id, topic_id);
|
||||
callback && callback();
|
||||
});
|
||||
};
|
||||
|
||||
exports.sendAtMessage = function (master_id, author_id, topic_id, reply_id, callback) {
|
||||
var ep = new eventproxy();
|
||||
ep.fail(callback);
|
||||
var message = new Message();
|
||||
message.type = 'at';
|
||||
message.master_id = master_id;
|
||||
message.author_id = author_id;
|
||||
message.topic_id = topic_id;
|
||||
message.reply_id = reply_id;
|
||||
message.save(callback);
|
||||
message.save(ep.done('message_saved'));
|
||||
ep.all('message_saved', function (msg) {
|
||||
push.send(message.type, author_id, master_id, topic_id);
|
||||
callback && callback();
|
||||
});
|
||||
};
|
||||
|
||||
52
common/push.js
Normal file
52
common/push.js
Normal file
@ -0,0 +1,52 @@
|
||||
var User = require('../proxy/user');
|
||||
var Message = require('../proxy/message');
|
||||
var JPush = require("jpush-sdk");
|
||||
var eventproxy = require('eventproxy');
|
||||
var config = require('../config');
|
||||
var client = JPush.buildClient(config.jpush.appKey, config.jpush.secretKey);
|
||||
|
||||
/**
|
||||
* 通过极光推送发生消息通知
|
||||
* @param {String} type 消息类型
|
||||
* @param {String} author_id 消息作者ID
|
||||
* @param {String} master_id 被通知者ID
|
||||
* @param {String} topic_id 相关主题ID
|
||||
*/
|
||||
exports.send = function (type, author_id, master_id, topic_id) {
|
||||
var ep = new eventproxy();
|
||||
User.getUserById(author_id, ep.done('author'));
|
||||
Message.getMessagesCount(master_id, ep.done('count'));
|
||||
ep.all('author', 'count', function(author, count) {
|
||||
var msg = author.loginname + ' ';
|
||||
var extras = {
|
||||
topicId: topic_id
|
||||
};
|
||||
switch(type) {
|
||||
case 'at':
|
||||
msg += '@了你';
|
||||
break;
|
||||
case 'reply':
|
||||
msg += '回复了你的主题';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
client.push()
|
||||
.setPlatform(JPush.ALL)
|
||||
.setAudience(JPush.alias(master_id.toString()))
|
||||
.setNotification(msg,
|
||||
JPush.ios(msg, null, count, null, extras),
|
||||
JPush.android(msg, null, null, extras)
|
||||
)
|
||||
.send(function(err, res) {
|
||||
if (config.debug) {
|
||||
if (err) {
|
||||
console.log(err.message);
|
||||
} else {
|
||||
console.log('Sendno: ' + res.sendno);
|
||||
console.log('Msg_id: ' + res.msg_id);
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
};
|
||||
@ -108,7 +108,13 @@ var config = {
|
||||
['share', '分享'],
|
||||
['ask', '问答'],
|
||||
['job', '招聘'],
|
||||
]
|
||||
],
|
||||
|
||||
// 极光推送
|
||||
jpush: {
|
||||
appKey: 'your access key',
|
||||
secretKey: 'your secret key'
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
|
||||
@ -43,7 +43,8 @@
|
||||
"validator": "3.22.1",
|
||||
"xmlbuilder": "2.4.4",
|
||||
"xss": "0.1.15",
|
||||
"yaqrcode": "0.0.2"
|
||||
"yaqrcode": "0.0.2",
|
||||
"jpush-sdk": "3.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"coveralls": "2.11.2",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user