io-syncify
Version:
跨进程、跨服务器之间通信同步化
42 lines (37 loc) • 1.05 kB
text/typescript
import * as IORedis from "ioredis";
import {Message} from "./Message";
import {MessageSender} from "./MessageSender";
/**
* Redis消息发送器
*/
export class RedisMessageSender implements MessageSender {
/**
* 消息发布客户端
* @private
*/
private message_pub_client: IORedis.Redis;
/**
* 消息发布通道
* @private
*/
private readonly message_pub_channel: string;
/**
*
* @param {string} message_pub_channel 消息发布通道
* @param {IORedis.RedisOptions} options redis 选项
*/
constructor(message_pub_channel: string, options: IORedis.RedisOptions) {
this.message_pub_channel = message_pub_channel;
this.message_pub_client = new IORedis(options);
}
/**
* 发送消息
* @param {Message} message
*/
send(message: Message) {
this.message_pub_client.publish(this.message_pub_channel, message.toJsonArrayString())
.catch(reason => {
console.log(reason);
});
}
}