数据库更新后的Socket.io消息

时间:2018-04-13 13:37:28

标签: javascript mysql node.js socket.io

当管理员在数据库中更改某些内容时,是否可以向所有用户发送消息(例如使用alert)?

情况:用户浏览汽车优惠并在执行此管理时更改了少数优惠的价格 - >用户收到通知。

2 个答案:

答案 0 :(得分:0)

您可以在每个数据库操作结束时使用socket.blast()。

因此,如果任何用户正在收听blasted消息,您可以进行API调用以便获取新记录。

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

答案 1 :(得分:0)

只需将数据库更新事件耦合到这样的发射:

<强>后端

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'});
     });
});

这样,每次数据库更新发生时,都会向前端发送一个新事件给所有连接的用户。您的前端现在可以按如下方式监听它(连接的前端听取后端发出的databaseUpdates):

<强>前端

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));

希望你在这里找到这个答案有用的更多信息

source1

Source2