UNPKG

io-syncify

Version:

跨进程、跨服务器之间通信同步化

36 lines (35 loc) 1.29 kB
"use strict"; 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;