Esempio n. 1
0
        (function (i) {
            var bus = nano.socket('bus');
            var addr = 'inproc://bus' + i;
            bus.bind(addr);
            buses[addr] = bus;

            // Add a "response count" for each bus.
            // We want this to equal the number of other buses.
            bus.responseCount = 0;

            // Tally messages from other buses.
            bus.on('message', function (msg) {
                console.error('#', 'received message from', msg.toString(), 'on', addr)
                this.responseCount++;
                current++;
                if (this.responseCount == count - 1) {
                    // All set! bus received all messages.

                }
                if (current == total) {
                    // close all buses.
                    Object.keys(buses).forEach(function (addr) {
                        buses[addr].close();
                    })
                }
            })
        })(i);
Esempio n. 2
0
  constructor(name, socketType, ipcBaseAddr, onMsg) {
    this.name = name;
    this.socketType = socketType;
    this.socket = nanomsg.socket(socketType);
    this.ipcBaseAddr = ipcBaseAddr;
    this.onMsg = onMsg;
    socketId += 1;
    this.socketId = socketId;

    this.protocol = config.get('ipc.protocol');
    switch (this.protocol) {
      case 'ipc':
        this.ipcFile = '/tmp/' + ipcBaseAddr;
        break;

      case 'inproc':
        this.ipcFile = appInstance.get() + '-' +
                       ipcBaseAddr;
        break;

      default:
        var err = 'Unsupported IPC protocol: ' + this.protocol;
        console.error(err);
        throw err;
    }
    this.ipcAddr = this.protocol + '://' + this.ipcFile;

    this.logPrefix = 'IpcSocket' + ('' + this.socketId).padStart(3) + ': ' +
                     this.name.padEnd(18) + ':';
    DEBUG && this.log('  alloc', this.ipcAddr, socketType);

    this.socket.on('data', this.onData.bind(this));
    this.connected = false;
    this.bound = false;
  }
 constructor(id) {
   this.id = id;
   this.socket = nano.socket('pair');
   this.socket.connect(channelUriPrefix + id);
   this._received = new Promise((resolve) => {
     this.socket.on('data', data => resolve(data));
   });
 }
const nano = require('nanomsg')

const addr = 'tcp://127.0.0.1:7789'
const req = nano.socket('req')
const rep = nano.socket('rep')

req.bind(addr)
rep.connect(addr)

rep.on('data', function (data) {
  console.log(String(data))
  rep.send('the real RPC?')
})

req.on('data', function (data) {
  console.log(String(data))
  rep.close()
  req.close()
})

req.send('is this')
const nano = require('nanomsg')
const req = nano.socket('req')

req.bind('tcp://127.0.0.1:7789')

req.on('data', (buffer) => {
  console.log(String(buffer));
  req.close();
});

setTimeout(() => req.send('is this'), 100);
const nano = require('nanomsg');
const pub = nano.socket('pub');
const addr = 'tcp://127.0.0.1:7789';

pub.bind(addr);

let n = 1;

let interval = setInterval(function () {
    if (n === 101) {
      clearInterval(interval);
      return;
    }

    pub.send(n++)
}, 100)
const nano = require('nanomsg');
const sub = nano.socket('sub');
const addr = 'tcp://127.0.0.1:7789';

sub.connect(addr);

sub.on('data', (buffer) => {
  console.log(Number(buffer));
});