vesicle
High performance and flexible RPC framework for Node.JS
Installation
npm i vesicle -S
Usage
- typescript
// server; bootstrap; // client; ; myclient .call'book.hi' .then .catch;
- javascript
;; const server = nodeID: 'node1' ; server; server; server; server; server; { return ;} server;
API
server
new Server({nodeID?: string; port?: number;})
create a server instance
.addAction( action: Action | Handler, service?: string, version?: string ): boolean
add a defined funtion
.listen(port: number)
start listen on specific port
client
new Client({ url: string; timeout?: number; retry?:number;connectTimeout?: number;})
url: entry url, combine with servers's url
timeout: max wait time for response
retry: retry times, when network error occurs, retry request
.call(action: string,parameter?: any,options: CallOptions = { retry: this.retry }): Promise<any>
invoke a remote funtion
Middleware
type Middleware = (context: Context, next: NextFunc) => any;
write style
- responseTime
- LRU
- auth
- rate limiter
- compress
Cluster
join in another node
; // join in a clusterrequest`172.19.2.10:6960/join`, .then .catch;
cluster infos
; // display cluster inforequest`172.19.2.10:6960/nodes` // request(`172.19.2.10:6960/actions`) // request(`172.19.2.10:6960/connections`) .then .catch;
Todo
- xxx
License
MIT