JSPM

simple-socket-router

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 16
  • Score
    100M100P100Q57588F
  • License MIT

Simple express-like socket routing for websockets, event emitters and socket.io

Package Exports

  • simple-socket-router
  • simple-socket-router/bundle/router.cjs.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-socket-router) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

simple-socket-router Coverage Status Build Status

Simple express-like socket routing for websockets, event emitters and socket.io

This is a simple way to avoid having to write a bunch of event.on handlers for larger applications. You can simply define routes and pass in your event emitter/websocket/socket.io(client|sever) and handle routes that way

Example

This works for both socket servers and clients

// SERVER CODE
import {Router,EventRouter} from 'simple-socket-router';
import Server from 'socket.io';
const ioServer = new Server();
// Router - npm module 'routes';
const router = new Router();
router.addRoute('/test/users', function(req, res){
  console.log('Got data from client Handler');
  res.send('ok');
});
router.addRoute('/account/:username', async (req, res)=>{
  console.log('In Account Handler');
  const user = await db.getUser(req.params.user);
  res.send({user);
});

ioServer.on('connection',socket=>{
  EventRouter({router,socket});
})
// Client CODE
import {Router,EventRouter} from 'simple-socket-router';
import io from 'socket.io-client';
const socket = io('http://localhost');
// Router - npm module 'routes';
const router = new Router();
router.addRoute('/live/updates', function(req, res){
  console.log('Got message from server',{update:req.body});
});

socket.on('connect',()=>{
  EventRouter({router,socket});
})