Giter VIP home page Giter VIP logo

hydra-plugin-rpc's Introduction

Hydra-plugin-RPC

Create and consume remote procedure calls in hydra with ease.

Install

$ npm i --save hydra-plugin-rpc

Use

Two methods are added to the hydra instance to add or consume methods

// hydra.methods(obj: Object);
// Object has keys of method names and values of functions.
hydra.methods({
    methodName: (arg1, arg2, arg3) => arg1 + arg2; // return value or Promise
});
// hydra.call(methodName: String, ...arguments) => Promise
// First argument is method name.
// Remaining arguments are sent to method (must be serializable).
// Returns a promise with the result.
hydra.call('methodName', arg1, arg2, arg3).then(...);

Example

// Service1.js
const hydra = require('hydra');
const HydraRPC = require('hydra-plugin-rpc');
const Promise = require('bluebird');

hydra.use(new HydraRPC());

hydra.init({...}).then(() => {
  hydra.methods({
    ping: () => 'pong',
    sleepPing: delay => Promise.resolve('pong').delay(delay) // optionally return promises
  });
});
// Service2.js (even works on separate machines!)
const hydra = require('hydra');
const HydraRPC = require('hydra-plugin-rpc');

hydra.use(new HydraRPC());

hydra.init({...}).then(() => {
  hydra.call('ping').then(result => console.log(result)); // Logs "pong"!
  hydra.call('sleepPing', 1000).then(result => console.log(result)); // Result comes back after 1000 ms!
});

hydra-plugin-rpc's People

Contributors

ecwyne avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.