This module provides an rpc interface for an mqtt connection, in essence this is a request and response strategy which uses an MQTT topic structure as transport.
npm install mqtt-rpc
Exposes an array of functions which retrieves and returns data.
var mqtt = require('mqtt')
, mqttrpc = require('mqtt-rpc')
, debug = require('debug')('remote-time:server');
var settings = {
reconnectPeriod: 5000 // chill on the reconnects
}
// client connection
var mqttclient = mqtt.connect('mqtt://localhost', settings);
// build a mqtt new RPC server
var server = mqttrpc.server(mqttclient);
// optionally configure the codec, which defaults to JSON, also supports msgpack
server.format('json');
// provide a new method
server.provide('$RPC/time', 'localtime', function (args, cb) {
debug('localtime');
cb(null, new Date());
});
Consumes the api exposed by the previous example.
var mqtt = require('mqtt')
, mqttrpc = require('mqtt-rpc')
, debug = require('debug')('remote-time:client');
var settings = {
reconnectPeriod: 5000 // chill on the reconnects
}
// client connection
var mqttclient = mqtt.connect('mqtt://localhost', settings);
// build a new RPC client
var client = mqttrpc.client(mqttclient);
// optionally configure the codec, which defaults to JSON, also supports msgpack
client.format('json');
// call the remote method
client.callRemote('$RPC/time', 'localtime', {}, function(err, data){
debug('callRemote', err, data);
});
Copyright (c) 2013 Mark Wolfe Licensed under the MIT license.