如何在客户端维护服务器时间?

时间:2018-07-09 23:46:11

标签: reactjs

我正在使用React(没有SSR)构建应用程序,我想在应用程序初始化中获取服务器时间,并保持该时间与服务器时间同步。有办法吗?

那么这段代码的注释部分会是什么?

api
  .fetchTime()
  .then(serverTime => {
    // Sync client time with serverTime here...
  })
  .catch(error => ...);

2 个答案:

答案 0 :(得分:1)

如果您的意思是客户端应使用与服务器相同的时区,则可以实现返回该时区并从客户端调用该时区的端点。然后,您可以根据获取的时区设置客户的时区(无论如何使用)。

如果要在服务器和客户端之间进行实时通信,则应研究Web套接字。

答案 1 :(得分:0)

您可以计算与您获得的服务器时间和客户端时间的毫秒偏移量。例如(以下代码使用 momentjs):

const { data: serverTime } = await ServerService.getServerTime();
const computedServerMillisecondsOffset = moment(serverTime).diff(moment());

然后使用 computedServerMillisecondsOffset 将客户端时间与服务器时间同步:

const currentDateTimeMoment = moment().add('milliseconds', serverMillisecondsOffset);