seashell-client-node
v0.2.3
Published
Seashell client for node.js.
Downloads
9
Readme
Seashell
A message queue for node.js and javascript.
get started
$ npm install seashell --save
// create hub.js
import {Hub} from 'seashell'
const hub = new Hub()
hub.start()
// create app.js
import {App, Router} from 'seashell'
const config = {
url: "ws://127.0.0.1:3311",
key: {
appId: "", // see example in demo/service
appName: "",
appSecret: ""
}
}
app.connect(config)
class
use class to create instance.
Router
const router = new Router()
App
App extends from Router
const app = new App()
Hub
const hub = new Hub()
API
router.use(path, (req, res, next)=>{})
router.use('/', (req, res, next) => {
console.log(req.body)
next() // will run next middleware
})
router.use('/', (req, res, next) => {)
res.body = {hello: 'world'} // res.body will sending to request client
res.end() // tell app to stop middleware and send response data
}
router.use(router)
const router = new Router()
router.use('abc', (req, res, next)=>{
res.body = {success: 1}
res.end()
})
const router2 = new Router()
router2.use('test', router)
// now , clients can request 'SERVICENAME/test/abc' and
got response '{"success": 1}'
app.use(router)
just like router.use
app.connect(options)
app.connect({
// options here
})
app.request(url, requestBody)
// write in async/await
const response = app.request('/account/profile', {userId: 1})
console.log(response.body) // {profile: {name: 'hansel', gender: 'man'}}
// write in Promise
app.request('/account/profile', {userId: 1})
.then((response)=>{
console.log(response.body)
})
// account means app's appName, defined in key. sea demo/data/service
// /profile means app's router, defined in app
hub.start()
const hub = new Hub()
hub.start()
// now, clients can connect hub on port 3311(default port)
Demo
Run each script in demo
dir, and browser localhost:3001
.
Use cli tool
$ npm install seashell-cli -g
$ seashell -k // will create a key like example in demo/service.
Todo
- [x] Promise
- [x] connect
- [x] request
- [ ] log
- [ ] custom hub port
Donate
LICENSE
MIT License.