sse-express icon indicating copy to clipboard operation
sse-express copied to clipboard

Rooms functionality

Open likerRr opened this issue 7 years ago • 1 comments

Add ability to group connections by rooms and send events to this group. Something like:

let sseExpress = require('./sse-express');
//...
app.get('/join-room', function(req, res) {
    res.sse.join('room-name'); // joins connection to room
    sseExpress.room.join('room-name', clientId);
});
app.get('/leave-room', sseExpress.room, function(req, res) {
    sseExpress.room.leave('room-name', clientId); // leaves connection to room
});
app.get('/messages', sseExpress(), function(req, res) {
    res.sse.toRoom('room-name', clientId, {
        event: 'message',
        data: {
          text: req.body.message,
          userId: req.body.userId
        },
        id: Date.now() + req.body.userId
      })
});

likerRr avatar Jul 05 '17 20:07 likerRr

I'd suggest putting it in separate library extending this one, core library should do one thing and do it well

kkafara avatar Mar 08 '18 13:03 kkafara