Esempio n. 1
0
    before(function(done) {
        ipc.serve(function(){
            ipc.server.on('message', function(msg) {});
        });
        ipc.server.start();

        rmrf('.unpacks', function(err) {
            done();
        });
    });
Esempio n. 2
0
  cncserver.ipc.initServer = function(options, callback) {
    runnerInitCallback = callback;

    // Initialize and start the IPC Server...
    ipc.serve(function(){
      ipc.server.on('app.message', ipcGotMessage);
    });

    ipc.server.start();
    console.log('Starting IPC server, waiting for runner client to start...');

    if (options.localRunner) {
      // Register an event callback to shutdown the runner if we're exiting.
      process.on('SIGTERM', cncserver.ipc.runner.shutdown);
      process.on('SIGINT', cncserver.ipc.runner.shutdown);
      cncserver.ipc.runner.init();
    }
  };
Esempio n. 3
0
  } catch (err) {
    errors.push('toggleMain')
  }
  if (!config.silent) {
    if (errors.length === 0) {
      mainWindow.webContents.send('APP_SETTING_DONE', {})
    } else {
      mainWindow.webContents.send('APP_SETTING_ERROR', {
        message: 'Failed to apply hotkey: ' + errors.join(' ')
      })
    }
  }
})

nodeIpc.serve(
  path.join(app.getPath('userData'), 'boostnote.service'),
  function () {
    nodeIpc.server.on('connect', function (socket) {
      nodeIpc.log('ipc server >> socket joinned'.rainbow)
      socket.on('close', function () {
        nodeIpc.log('ipc server >> socket closed'.rainbow)
      })
    })
    nodeIpc.server.on('error', function (err) {
      nodeIpc.log('Node IPC error'.rainbow, err)
    })
  }
)

module.exports = nodeIpc
Esempio n. 4
0
bot.getMe().then(function (me) {
    console.log('Hi my name is %s!', me.username);
});


ipc.serve(
    function(){

        ipc.server.on(
            'app.message.error',
            function(data,socket){
                ipc.log('got a message from'.debug, (data.id).variable, (data.message).data);
                //notfify my "670216"
                //bot.sendMessage("670216", data.message);
            }
        );
        ipc.server.on(
            'app.message.log',
            function(data,socket){
                ipc.log('got a message from'.debug, (data.id).variable, (data.message).data);
                console.log('got a message from'.debug, (data.id).variable, (data.message).data);
                bot.sendMessage("670216", data.message);
            }
        );        
    }
);



ipc.server.start();
Esempio n. 5
0
 before(function() {
     ipc.serve(function(){
         ipc.server.on('message', function(msg) {});
     });
     ipc.server.start();
 });
Esempio n. 6
0
let count = mult * max_ticket;
let response_count = 0;
let errors = 0;

let slaves_count = 2;
let processes = [];
let cursor = 0;
let time;

ipc.config.id = 'world';
ipc.config.retry = 1500;
ipc.config.silent = true;
ipc.serve(
	function () {
		console.log('Start!');
		for (let i = 0; i < slaves_count; i++) {
			let chprocess = child_process.fork(__dirname + '/ipcclient.js');
		}
	}
);

ipc.server.start();

ipc.server.on(
	'app.ready',
	function (data, socket) {
		ipc.server.emit(
			socket,
			'app.settings', {
				server: 'couchbase://192.168.1.36'
			});
	}
Esempio n. 7
0
import ipc from 'node-ipc';
import { SYMBOL, STRING } from 'r6rs';
import { Library } from 'r6rs-async-io';

ipc.config.id = 'r6rsasync';
ipc.config.retry = 1500;
ipc.config.silent = true;

ipc.serve();

export default new Library('remote', {
  'remote/start': () => {
    ipc.server.start();
    /* return () => {
      ipc.server.stop();
    }; */
  },
  'remote/listen': (params, callback) => {
    if (params == null || (params.type != SYMBOL && params.type != STRING)) {
      throw new Error('String or symbol expected');
    }
    let eventName = params.value;
    let listener = (data, socket) => {
      if (Array.isArray(data)) {
        callback(data);
      } else {
        callback([]);
      }
      ipc.server.emit(socket, 'ack');
    };
    ipc.server.on(eventName, listener);
Esempio n. 8
0
exports.write = (image, drive, options) => {
  const emitter = new EventEmitter()

  const argv = cli.getArguments({
    entryPoint: rendererUtils.getApplicationEntryPoint(),
    image,
    device: drive.device,
    validateWriteOnSuccess: options.validateWriteOnSuccess,
    unmountOnSuccess: options.unmountOnSuccess
  })

  // There might be multiple Etcher instances running at
  // the same time, therefore we must ensure each IPC
  // server/client has a different name.
  process.env.IPC_SERVER_ID = `etcher-server-${process.pid}`
  process.env.IPC_CLIENT_ID = `etcher-client-${process.pid}`

  ipc.config.id = process.env.IPC_SERVER_ID
  ipc.config.silent = true
  ipc.serve()

  /**
   * @summary Safely terminate the IPC server
   * @function
   * @private
   *
   * @example
   * terminateServer();
   */
  const terminateServer = () => {
    // Turns out we need to destroy all sockets for
    // the server to actually close. Otherwise, it
    // just stops receiving any further connections,
    // but remains open if there are active ones.
    _.each(ipc.server.sockets, (socket) => {
      socket.destroy()
    })

    ipc.server.stop()
  }

  /**
   * @summary Emit an error to the client
   * @function
   * @private
   *
   * @param {Error} error - error
   *
   * @example
   * emitError(new Error('foo bar'));
   */
  const emitError = (error) => {
    terminateServer()
    emitter.emit('error', error)
  }

  /**
   * @summary Bridge robot message to the child writer caller
   * @function
   * @private
   *
   * @param {String} message - robot message
   *
   * @example
   * bridgeRobotMessage(robot.buildMessage('foo', {
   *   bar: 'baz'
   * }));
   */
  const bridgeRobotMessage = (message) => {
    const parsedMessage = _.attempt(() => {
      if (robot.isMessage(message)) {
        return robot.parseMessage(message)
      }

      // Don't be so strict. If a message doesn't look like
      // a robot message, then make the child writer log it
      // for debugging purposes.
      return robot.parseMessage(robot.buildMessage(robot.COMMAND.LOG, {
        message
      }))
    })

    if (_.isError(parsedMessage)) {
      emitError(parsedMessage)
      return
    }

    try {
      // These are lighweight accessor methods for
      // the properties of the parsed message
      const messageCommand = robot.getCommand(parsedMessage)
      const messageData = robot.getData(parsedMessage)

      // The error object is decomposed by the CLI for serialisation
      // purposes. We compose it back to an `Error` here in order
      // to provide better encapsulation.
      if (messageCommand === robot.COMMAND.ERROR) {
        emitError(robot.recomposeErrorMessage(parsedMessage))
      } else if (messageCommand === robot.COMMAND.LOG) {
        // If the message data is an object and it contains a
        // message string then log the message string only.
        if (_.isPlainObject(messageData) && _.isString(messageData.message)) {
          console.log(messageData.message)
        } else {
          console.log(messageData)
        }
      } else {
        emitter.emit(messageCommand, messageData)
      }
    } catch (error) {
      emitError(error)
    }
  }

  ipc.server.on('error', emitError)
  ipc.server.on('message', bridgeRobotMessage)

  ipc.server.on('start', () => {
    const child = childProcess.fork(CONSTANTS.WRITER_PROXY_SCRIPT, argv, {
      silent: true,
      env: process.env
    })

    child.stdout.on('data', (data) => {
      console.info(`WRITER: ${data.toString()}`)
    })

    child.stderr.on('data', (data) => {
      bridgeRobotMessage(data.toString())

      // This function causes the `close` event to be emitted
      child.kill()
    })

    child.on('error', emitError)

    child.on('close', (code) => {
      terminateServer()

      if (code === EXIT_CODES.CANCELLED) {
        return emitter.emit('done', {
          cancelled: true
        })
      }

      // We shouldn't emit the `done` event manually here
      // since the writer process will take care of it.
      if (code === EXIT_CODES.SUCCESS || code === EXIT_CODES.VALIDATION_ERROR) {
        return null
      }

      return emitError(new Error(`Child process exited with error code: ${code}`))
    })
  })

  ipc.server.start()

  return emitter
}