Implementation of MessagePack-RPC with msgpack-lite
npm install msgpack-rpc-lite






Implementation of MessagePack-RPC with msgpack-lite
- __createServer([serverOptions][, codecOptions])__
Creates a new MessagePack-RPC server.
- serverOptions <Object> See [net.createServer([options][, connectionListener])](https://nodejs.org/api/net.html#net_net_createserver_options_connectionlistener)
- codecOptions <Object>
- encode See [Custom Codec Options][1]
- decode See [Custom Codec Options][1]
- Returns: <net.Server>
- __Server event: method__
Emitted when a new connection is made.
- <Array> request parameters.
- <Function> If a request is received, a callback function is passed.
- To return the results to the client, pass null as the first argument and response parameters as the second argument.
- If an error occurs, pass it to the first argument.
- __createClient(port[, host][, timeout][, codecOptions])__
Initiates a MessagePack-RPC client.
- port <number> Port the socket should connect to.
- host <string> Host the socket should connect to. Default: 'localhost'
- timeout <number> Sets the socket to timeout after timeout milliseconds of inactivity on the socket. If timeout is 0, then the existing idle timeout is disabled. Default: 0
- codecOptions <Object>
- encode See [Custom Codec Options][1]
- decode See [Custom Codec Options][1]
- Return: <Client>
- __client.request(method[, ...args])__
- method <string>
- Return: <Promise>
- __client.notify(method[, ...args])__
- method <string>
- Return: <Promise>
[1]: https://github.com/kawanet/msgpack-lite#custom-codec-options
- Server
``jshello ${ message }
const rpc = require('msgpack-rpc-lite');
const server = rpc.createServer().on('say', (params, callback) => {
const [ message ] = params;
callback(null, );`
});
server.listen(9199);
- Client
`js
const rpc = require('msgpack-rpc-lite');
const client = rpc.createClient(9199, 'localhost');
client.request('say', [ 'world' ]).then(([ response ]) => {
console.log(response); // hello world
})
`
Set true to useraw of encode/decode of Codec-options.
- Client
`js
const codecOptions = { encode: { useraw: true }, decode: { useraw: true } };
const client = rpc.createClient(9199, 'localhost', 0, codecOptions);
``
See also:
- https://github.com/kawanet/msgpack-lite#compatibility-mode
- https://github.com/msgpack/msgpack/blob/master/spec.md#upgrading-messagepack-specification
- MessagePack-RPC Specification
- http://frsyuki.hatenablog.com/entry/20100406/p1
- MessagePack specification
- msgpack-lite