samjs-client
Created to connect **S**ocket.io, **A**ngularJS and **M**ongoDB.
Last updated 3 years ago by paulpflug .
Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install samjs-client 
SYNC missed versions from official npm registry.

samjs-client

Created to connect Socket.io, AngularJS and MongoDB.

Now it is database and view framework agnostic.

Server-side: samjs

Getting Started

npm install --save samjs
npm install --savedev samjs-client

Simple example with koa server

samjs = require "samjs"
koa = require("koa")()

server = require("http").createServer(koa.callback())

samjs
.plugins()
.options()
.configs({name:"item"})
.models()
.startup(server)

server.listen(3000)
#to close
#samjs.shutdown()

# in browser with webpack
samjs = require("samjs-client")()
samjs.config.set "item", "value"
.then ->
  #success
.catch ->
  #failed

# some other client  
samjs.config.on "item", -> #item changed
  samjs.config.get "item"
  .then (response) ->
    response == "value" # true
  .catch ->
    #failed

docs

samjs-client is rather simple. It contains:

  • some logic to efficently use socket.io
  • an interface to configure and install a samjs instance
  • an interface to access config objects
  • a simple plugin interface

usage of socket.io

samjs.io.onceLoaded # promise which is fullfilled on successfull connect
samjs.io.socket # raw socket.io-client instance
samjs.io.nsp("/someNSP").socket # raw namespace socket
# wrapper function for messaging
samjs.io.nsp("/someNSP).getter("set","someValue")
.then(function(response){#success})
.catch(function(e){#failed})

install interface

State management

samjs.install.onceConfigure
.then(function(){
  # samjs is in configure mode
  })
.catch(function(){
  # samjs is already configured
  })

samjs.install.onceConfigured
.then(function(){
  # samjs is successfully configured
  })

samjs.install.onceInstall
.then(function(){
  # samjs is in install mode
  })
.catch(function(){
  # samjs is already installed
  })

samjs.install.onceInstalled
.then(function(){
  # samjs is successfully installed
  })

configure interface (only available in configure mode)

// server-side
samjs.configs({
  name:"someConfigObject",
  value:false,
  isRequired:true,
  test:function(value){
    return new samjs.Promise(function(resolve,reject){
      if (value) {
        resolve()
      } else {
        reject()
      }
    })
  }
})

// client-side
samjs.install.get("someConfigObject").then(function(response){
  response == false // true
  })
.catch(function(){
  // someError
  })

samjs.install.test("someConfigObject",true).then(function(){
  // test passed
  })
.catch(function(){
  // test failed
  })

samjs.install.set("someConfigObject",true).then(function(){
  // test passed and successfully set
  })
.catch(function(){
  // failed to set
  })

config interface

samjs.configs({
  name:"someConfigObject",
  value:false,
  test:function(value){
    return new samjs.Promise(function(resolve,reject){
      if (value) {
        resolve()
      } else {
        reject()
      }
    })
  }
})

// client-side
samjs.config.get("someConfigObject").then(function(response){
  response == false // true
  })
.catch(function(){
  // someError
  })

samjs.config.test("someConfigObject",true).then(function(){
  // test passed
  })
.catch(function(){
  // test failed
  })

samjs.config.set("someConfigObject",true).then(function(){
  // test passed and successfully set
  })
.catch(function(){
  // failed to set
  })

samjs.config.on("someConfigObject", function(){
  // someConfigObject changed
})

plugin interface

takes a one or more client plugins or an array of client plugins.

samjs.plugins(require("samjs-auth-client"),require("samjs-mongo-client"))
// or
samjs.plugins([require("samjs-auth-client"),require("samjs-mongo-client")])

Current Tags

  • 0.3.0                                ...           latest (3 years ago)

6 Versions

  • 0.3.0                                ...           3 years ago
  • 0.2.2                                ...           3 years ago
  • 0.2.1                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.1                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 3
Dependencies (2)
Dev Dependencies (2)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |