io-syncify
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published
const {
    sleep,
    IOSyncify,
    Message,
    RedisInputMessageReceiver,
    RedisMessageSender,
    RedisOutputMessageReceiver,
} = require('io-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 ioSyncify = new IOSyncify(
    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++;
        setImmediate(async ()=>{
            let now = Date.now();
            let result = await ioSyncify.input(new Message(`${Date.now()}_${i}`, now.toString()), 10000);
            console.log(Date.now(), result.toJsonArrayString(), result.timestamp-now);
        });
    }
})();
 

Readme

Keywords

Package Sidebar

Install

npm i io-syncify

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

24.9 kB

Total Files

34

Last publish

Collaborators

  • mattf25