pomelo消息推送

本文介绍了Pomelo框架下如何进行消息推送。每个channel对应一个server,若需跨server操作,需使用pomelo-globalchannel-plugin和pomelo-status-plugin插件。原生态的channel在RPC调用时只能在一个指定server上操作,否则可能导致用户信息获取失败。
摘要由CSDN通过智能技术生成

每个channel与server一一对应,如果要跨server,则需要引入pomelo-globalchannel-plugin和pomelo-status-plugin两个插件,以下remote代码是原生态channel,rpc调用时只能在指定的一个server上操作,否则会出现取不到用户的情况


/**
 * 消息推送
 * Created by lmiky on 14-4-16.
 */
var RemoteMsgPush = require('../../../domain/remoteMsgPush');
var RemoteMsgPushUser = require('../../../domain/remoteMsgPushUser');
var remoteMsgPushService = require('../../../services/remoteMsgPushService');
var remoteMsgPushUserService = require('../../../services/remoteMsgPushUserService');
var dateUtils = require('../../../util/dateUtils');
var logUtils = require('../../../util/logUtils');
var utils = require('../../../util/utils');
var SystemConfig = require('../../../../config/systemConfig');
var Code = require('../../../../config/code');
var log = logUtils.getLogger(__filename);
var self = null;
module.exports = function(app) {
  return new Handler(app);
};

var Handler = function(app) {
	this.app = app;
	this.channelService = this.app.get('channelService');
	this.globalChannelService = this.app.get('globalChannelService');
	self = this;
};

/**
 * 添加用户
 * @param uid
 * @param cb
 */
Handler.prototype.add = function(connectorServiceId, uid, cb) {
	try {
		//加入到globalchannel
		/*this.globalChannelService.add(SystemConfig.MSG_PUSH.GLOBAL_CHANNEL_NAME, uid, connectorServiceId, function(err) {
			if(err) {
				utils.invokeCallback(cb, err);
			} else {
				//因为globalchannel无法对单个推送信息,只能向全部用户推送,所以必须再用到原生的channel
				var channel = self.channelService.getChannel(SystemConfig.MSG_PUSH.GLOBAL_CHANNEL_NAME, true);
				channel.add(uid, connectorServiceId);
				utils.invokeCallback(cb, null);
			}
		});*/
		var channel = self.channelService.getChannel(SystemConfig.MSG_PUSH.GLOBAL_CHANNEL_NAME, true);
		channel.add(uid, connectorServiceId);
		utils.invokeCallback(cb, null);
	}catch(e) {
		log.error('scheduler.messageRemote.add exception ' &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值