1.0.0-beta.2 • Published 3 years ago
input-syncify v1.0.0-beta.2
const {
sleep,
InputSyncify,
Message,
RedisInputMessageReceiver,
RedisMessageSender,
RedisOutputMessageReceiver,
} = require('input-syncify');
const EventEmitter = require('events');
let redisOptions = {
host: 'host',
port: 6379,
password: 'password',
family: 4,
db: 0
};
/**
* 输入消息发布通道
*/
let input_message_pub_channel = 'input_message_pub_channel_test';
/**
* 输出消息订阅通道
*/
let output_message_sub_channel = 'output_message_sub_channel_test';
let inputSyncify = new InputSyncify(
new RedisOutputMessageReceiver(output_message_sub_channel, redisOptions, new EventEmitter()),
new RedisMessageSender(input_message_pub_channel, redisOptions)
);
/**
* 其它服务器或进程,输入消息订阅通道
*/
let input_message_sub_channel = input_message_pub_channel;
/**
* 其它服务器或进程,输出消息发布通道
*/
let output_message_pub_channel = output_message_sub_channel;
let outputMessageSender = new RedisMessageSender(output_message_pub_channel, redisOptions);
let inputMessageReceiver = new RedisInputMessageReceiver(input_message_sub_channel, redisOptions, {
handle(message) {
message.text = Math.random().toString();
message.timestamp = Date.now();
outputMessageSender.send(message);
}
});
inputMessageReceiver.receive();
(async () => {
let i = 0;
await sleep(5000);
while (true) {
await sleep(10);
i++;
setTimeout(async ()=>{
let now = Date.now();
let result = await inputSyncify.input(new Message(`${Date.now()}_${i}`, now.toString()), 10000);
console.log(Date.now(), 'result', result.timestamp-now, result.toJsonArrayString());
}, 5);
}
})();
1.0.0-beta.2
3 years ago
1.0.0-beta.1
3 years ago