https://github.com/zweifisch/rpc.io
rpc over socket.io, with promise
https://github.com/zweifisch/rpc.io
Last synced: over 1 year ago
JSON representation
rpc over socket.io, with promise
- Host: GitHub
- URL: https://github.com/zweifisch/rpc.io
- Owner: zweifisch
- Created: 2014-06-15T02:37:06.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2016-02-03T12:59:27.000Z (over 10 years ago)
- Last Synced: 2025-01-27T22:55:08.956Z (over 1 year ago)
- Language: CoffeeScript
- Size: 12.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rpc.io
[![NPM Version][npm-image]][npm-url]
rpc over socket.io
## usage
clientside:
```javascript
let rpc = require('rpc.io-client')(socket, 2000); # timeout
rpc.call('users.get', {id: 1024}) # Promise
```
serverside:
```javascript
io.on('connection', (socket)=> {
rpc = require("rpc.io")(socket);
rpc.register('users.get', (id)=> {nickname: 'foo'});
rpc.register('users', {
delete: function*(id) {
yield db.items.remove({owner: id});
db.users.remove({_id: id});
}
});
});
```
### optional params
```javascript
rpc.register('projects.create', {description: ''}, (name, description)=>);
```
```javascript
socket.register('projects', {
create_defaults: {
description: ''
},
create: (name, description)=>
});
```
### handle all rpc calls
```javascript
rpc.on("call", (method, kwargs)=> throw Error `method ${method} not implemented`);
```
### handle errors
```javascript
rpc.on("error", (method, kwargs, error)=> log.error(error));
```
[npm-image]: https://img.shields.io/npm/v/rpc.io.svg?style=flat
[npm-url]: https://npmjs.org/package/rpc.io