1234567891011121314151617181920212223242526272829303132333435 |
- const jsonServer = require('json-server');
- const WebSocket = require('ws');
- const { v4: uuidv4 } = require('uuid');
- const server = jsonServer.create();
- const router = jsonServer.router('./db.json');
- const middlewares = jsonServer.defaults();
- const wss = new WebSocket.Server({port: 3030});
- server.use(middlewares);
- // To handle POST, PUT and PATCH you need to use a body-parser
- server.use(jsonServer.bodyParser);
- server.use((req, res, next) => {
- // For every POST request, a `created_at` property is added
- if (req.method === 'POST') {
- req.body.id = uuidv4();
- req.body.created_at = new Date().toISOString();
- if(req.body.message){
- req.body.event = "created"
- }
- }
- if (req.body && req.body.room_id) {
- wss.clients.forEach((client) => client.send(JSON.stringify(req.body)));
- }
- next();
- });
- // Use default router
- server.use(router);
- server.listen(3000, () => console.log('Server is running'));
- wss.on('connection', (ws) =>
- ws.on('message', (data) => wss.clients.forEach((client) => client.send(data)))
- );
|