https://github.com/repetere/simple-socket-router
Simple express-like socket routing for websockets, event emitters and socket.io
https://github.com/repetere/simple-socket-router
event-emitter router routing socket-io websocket
Last synced: 9 months ago
JSON representation
Simple express-like socket routing for websockets, event emitters and socket.io
- Host: GitHub
- URL: https://github.com/repetere/simple-socket-router
- Owner: repetere
- License: mit
- Created: 2019-02-15T00:16:37.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T22:20:07.000Z (almost 3 years ago)
- Last Synced: 2024-04-26T03:44:55.745Z (over 1 year ago)
- Topics: event-emitter, router, routing, socket-io, websocket
- Language: JavaScript
- Homepage: https://repetere.github.io/simple-socket-router/
- Size: 1.04 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# simple-socket-router [](https://coveralls.io/github/repetere/simple-socket-router?branch=master) [](https://travis-ci.org/repetere/simple-socket-router)
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
```javascript
// 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});
})
```
```javascript
// 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});
})
```