0.1.6 • Published 10 years ago

socker v0.1.6

Weekly downloads
4
License
-
Repository
github
Last release
10 years ago

socker

express like API for websockets over engine.io

with socker you can

  • use middlewares to process incoming data
  • give a response on incoming "requests"
  • use routing to structure your apps
  • handle errors in the same way as in express

how

setup

backend:

var engine = require('engine.io');
var socker = require('socker');

var app = require('express')();
var server = http.createServer(app);
server.listen(nconf.get('server:port'));
server = engine.attach(server);
socker(server);
server.on('connection', function(socket){
  socker.attach(socket);
});

frontend:

var socket = require('engine.io')('ws://localhost');
var sockerClient = require('socker-client');
sockerClient(socket);
socket.serve('CREATE /api/rooms', {name:"testName"}, function(err, data){
  // err contains error object if it was thrown
  // data is a response data
})

add middlewares

server.sock.use(logger);
function logger(socket, data, next){
  // socket is a socket object
  // socket object have .json method to send a response
  // data - the data object sent with `request`
  console.log(data);
  next()
}

add routes

With routings you can create meaningful websocket based API

server.sock.when('CREATE /api/rooms', checkRoom, createRoom);
server.sock.when('READ /api/room/:id', getRoom);
function getRoom(socket, data, next){
  // socket.params['id'] contains id from the route
  // data is a data sent
  socket.json({room:"name", id: 100});
}

handle errors

server.sock.use(function(err, socket, data, next){
  if(err){
    socket.json({err:err, code: 500})
  }
})

mantainers

Eldar Djafarov

MIT

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago