avenirmq

1.0.0 • Public • Published

avenirmq

开源项目AvenirMQ的操作库 AvenirMQ

APIS

  1. async init(info)

为了告诉avenirmq目前的连接信息

async init(info) {
    this.ip = info.ip;
    this.port = info.port;
}
  1. async login(info)

登录并获取签名,info传name和password

返回sign

  1. async send(data, sign)

将数据发送给AvenirMQ

async send(data, sign) {
    let sendText = {
        type: 'send',
        sign: sign || this.sign,
        data: data
    }
    let res = await this.asyncSend(sendText, 'send');
    return res;
}
  1. async receive(info, func)

调用此函数会启动一个服务,当数据从AvenirMQ回来的时候会调用func,即func为目前的回调函数

async receive(info, func) {
    let { ip, port } = info;
    if(!ip || !port) {
        throw ('Object[info] must contain ip and port');
    }

    if(!func) {
        throw ('lack of callback func');
    }
    this.server = new net.createServer();
    this.server.on('connection', async (client) => {

        client.on('data', async (msg) => { 
            //接收client发来的信息
            func(JSON.parse(msg));
        });

        client.on('error', function (e) { 
            //监听客户端异常
            console.log('client error:' + e);
            client.end();
        });

        client.on('close', function () {

        });

    });
    this.server.listen(port, ip, function () {

    });
}

example

async function main() {
    avenirmq.init({ ip: '127.0.0.1', port: '52013' });
    let res = await avenirmq.login({
        name: "test",
        password: '11111111'
    });
    console.log("res = ", res);
    let sign = res.sign;
    await avenirmq.receive({
        ip: '127.0.0.1',
        port: '13000',
    }, cout);
    await avenirmq.send({a:'123'},sign);
   

}

function cout(data) {
    console.log('data :>> ', data);
}

main();

Readme

Keywords

Package Sidebar

Install

npm i avenirmq

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

5.64 kB

Total Files

5

Last publish

Collaborators

  • jifashi