Real-time polyglot microservice.
Instalation
Install using npm:
$ npm install --save rpm.io
Basic Use
Easy to use:
Server
let rpm = require('rpm.io');
let exported = rpm.exports({
"attr1": "value1",
"so":{
"long":{
"path":{
"value": "XD"
}
}
},
"method1": () => "value2"
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
await remote.attr1.__value__
await remote.method1.__call__()
await remote.so.long.path.value.__value__
})
For know more about rpm.io
click here
Object value
Server
let rpm = require('rpm.io');
let exported = rpm.exports({
"myobject": {
"foo": "var",
}
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
await remote.myobject.__obj__
})
Array value
Server
let rpm = require('rpm.io');
let exported = rpm.exports({
"myarray": [
"foo", "var"
]
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
await remote.myarray[0]
await remote.myarray[1]
await remote.myarray.length
await remote.myarray.__obj__
})
Class value
Server
let rpm = require('rpm.io');
class MyClass {
attr1 = "value1"
constructor(){
this.attr1 = "value3"
}
method1(){
return "value2"
}
}
let exported = rpm.exports({
"MyClass": Myclass
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
await remote.MyClass.attr1.__value__
await remote.MyClass.method1.__call__()
let instance = await remote.MyClass.__call__()
await instance.attr1.__value__
})
Realtime
Now you can subscribe to an object to give feedback in realtime
Server
let rpm = require('rpm.io');
let exported = rpm.exports({
counter: 0,
start(){
setInterval(() => {
this.counter++
}, 1000)
}
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
remote.__subscribe__({
counter: (newValue) =>{
console.log(newValue)
}
})
remote.start.__call__()
})
Result
1
2
3
4
5
Callbacks
Now you can send a method by parameter to be able use as callback function
Server
let rpm = require('rpm.io');
let exported = rpm.exports({
method(callback){
callback("some value")
}
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
remote.method.__call__( (value) => {
console.log(value)
})
})