0.2.3 • Published 8 years ago

seashell-client-node v0.2.3

Weekly downloads
4
License
MIT
Repository
github
Last release
8 years ago

Seashell

Join the chat at https://gitter.im/heineiuo/seashell npm version NPM Status Build Status

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

  • Promise
  • connect
  • request
  • log
  • custom hub port

Donate

Hansel's Gratipay

LICENSE

MIT License.