1.2.3 • Published 5 years ago
rpm.io-client v1.2.3
Real-time polyglot microservice.
Instalation
Install using npm:
$ npm install --save rpm.io-client
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__ //value1
await remote.method1.__call__() //value2
await remote.so.long.path.value.__value__ //XD
})
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__ //{ foo: "var" }
})
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] // foo
await remote.myarray[1] // var
await remote.myarray.length // 2
await remote.myarray.__obj__ // [ "foo", "var" ]
})
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__ //value1
await remote.MyClass.method1.__call__() //value2
let instance = await remote.MyClass.__call__()
await instance.attr1.__value__ //value3
})
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){
//do something
callback("some value")
//do someting else
}
}, 8000)
Client
let rpm = require('rpm.io-client');
rpm.require_remote('http://localhost:8000')
.then(async (remote) => {
remote.method.__call__( (value) => {
console.log(value)//some value
})
})