can1
can1

Reputation: 49

Socket.io message after database update

Is it possible to send message (for example using alert) to all users when admin changed something in database?

situation: Users browsing car offers and while doing this admin changed price of few offers --> users gets notifications.

Upvotes: 2

Views: 4268

Answers (2)

Willem van der Veen
Willem van der Veen

Reputation: 36620

Just couple the event of the database update to an emit like this:

Backend

io.on('connection', (socket) => {
    console.log('A user connected');

    // handling event from the front-end:
    socket.on('clientEvent', function(data) {
        // Database update happens before this
        socket.emit('databaseUpdate', { description: 'Database is updated'});
     });
});

This way every time a database update happens a new event will be emitted to the frontend to all the users which are connected. Your frontend now can listen to it as follows (the frontend who is connected listened to emitten databaseUpdates from the backend):

Frontend

var socket = io();
// now we just log the updated data but in this callback you provide your own implementation.
socket.on('databaseUpdate', (data) => console.log(data.description));

Hopefully you find this answer usefull more info here

source1

Source2

Upvotes: 1

Edwin Xavier
Edwin Xavier

Reputation: 1

You can use socket.blast() at the end of each db operation.

So, if any user is listening to the blasted message, you can make the API call so that it fetches the new record.

[http://node-machine.org/machinepack-sockets/blast][1]

Upvotes: 0

Related Questions