io-syncify
Version:
跨进程、跨服务器之间通信同步化
36 lines (35 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RedisOutputMessageReceiver = void 0;
const IORedis = require("ioredis");
const Message_1 = require("./Message");
/**
* Redis输出消息接收器
*/
class RedisOutputMessageReceiver {
/**
*
* @param {string} output_message_sub_channel
* @param {IORedis.RedisOptions} options
* @param {EventEmitter} emitter
*/
constructor(output_message_sub_channel, options, emitter) {
this.output_message_sub_channel = output_message_sub_channel;
this.output_message_sub_client = new IORedis(options);
this.eventEmitter = emitter;
}
/**
* 接收消息
*/
receive() {
this.output_message_sub_client.subscribe(this.output_message_sub_channel).then(() => {
// console.log('subscribe', this.output_message_sub_channel, 'success');
this.output_message_sub_client.on('message', async (channel, message) => {
// console.log(Date.now(), 'receive output message', message);
let msg = Message_1.Message.fromJsonArrayString(message);
this.eventEmitter.emit(msg.id, msg);
});
});
}
}
exports.RedisOutputMessageReceiver = RedisOutputMessageReceiver;