SOCKET.IO不会将新数据发送到cilient,而是将旧数据发送到JavaScript(JavaScript客户端)

时间:2019-02-20 00:15:52

标签: javascript sockets websocket socket.io

我有一个问题,这里我有一些数据要更新并发送到socket.io服务器。

  1. 我正在发送一些这样的数据
{
  act: 54,
  repair: 1,
  scrap: 2
}
  1. 在通过套接字将数据发送到套接字服务器后发送该数据。这样的套接字服务器代码

我正在使用requestrequest-promise更新并获取数据

socket.on('updateMonitoringSeat', (monitoring_line_id, monitoring_seat_id, seat_id, data) => {
    baseRequestPromise.post(path('api/monitoring-seat/' + monitoring_seat_id), {form: data})
    .finally(() => {
        baseRequestPromise.get(path('api/monitoring-seat/' + monitoring_line_id)).then((body) => {
            io.in(`edun-central-${monitoring_line_id}`).emit('monitoringSeatData', body);
        });

        baseRequestPromise.get(path('api/monitoring-seat/' + monitoring_line_id + '/' + seat_id)).then((body) => {
            socket.join(`edun-${monitoring_line_id}-${seat_id}`);
            io.in(`edun-${monitoring_line_id}-${seat_id}`).emit('showMonitoringSeatData', body);
        });;
    });      
});

数据库中的数据已成功更新。但是,有时,如果我快速更新数据,成功更新后,此代码不会将更新后的数据发送到客户端,而是将旧数据发送到客户端。

baseRequestPromise.get(path('api/monitoring-seat/' + monitoring_line_id + '/' + seat_id)).then((body) => {
    socket.join(`edun-${monitoring_line_id}-${seat_id}`);
    io.in(`edun-${monitoring_line_id}-${seat_id}`).emit('showMonitoringSeatData', body);
});;

任何人都可以解决此问题吗?预先感谢

0 个答案:

没有答案