README
socket.io-routes
An alternative API for writing socket.io event handlers
How to use
const io = require('socket.io');
const routes = require('socket.io-routes');
//...
io.use(routes);
io.on('connection', function(s) {
s.route('event')
.process(function(data) {
s.emit('success', 'some data');
});
});
Instead of sending manually a message, you can return a value to the callback of the event (if available):
s.route('event')
.process(function(data) {
doSomething().then(() => {
return doSomething();
});
});
You can add authentication (assumes an authentication middleware like the following):
io.use(function authenticateMiddleware(s, next) {
if (!s.auth) {
s.auth = {};
}
if (s.handshake.query.token === 'secret') {
s.auth.isAuthenticated = true;
}
next();
});
//...
s.route('event')
.auth({
isAuthenticated: true
})
.process(function(data) {
return doSomething();
});
And you can also validate data using node-validator:
s.route('event')
.validate({
email: {
isEmail: {},
isLowercase: true
})
.process(function(data) {
return doSomething();
});