我正在使用带有meteor v0.7.2的timesync v0.1.4软件包并且已经创建了倒数计时器。我面临的问题是,当我尝试手动更改客户端系统时,包检索的时间是客户端时间而不是服务器时间。所以,我尝试在TimeSync.resync()
之前调用TimeSync.serverTime()
函数,这导致计时器在错误的瞬间返回与服务器同步。在那些分秒期间,显示另一条消息,我已设置在定时器结束/未启动时显示。
有没有办法展示类似“重新同步”的内容。虽然包正在重新启动服务器或解决此问题?
我知道在后续版本的软件包中有一个名为TimeSync.watchClockChanges()
的方法。但我处于一种阻止我使用最新版本软件包的情况。
谢谢。
答案 0 :(得分:1)
我是timeync包的维护者。
当您手动更改客户端系统时间时,程序包不会返回客户端时间 - 它只返回当前客户端时间加上计算出的偏移量。
除非您使用我们在更高版本中实现的watchClockChanges
函数,否则它不知道客户端时间已经跳过,该函数会查找系统时间跨越滴答的意外跳转。
执行此操作的正确方法是在我们发现时钟已更改时将时钟偏移重置为未定义的值,然后TimeSync.isSynced()
在时钟更改时将被动地变为假。然后,当同步成功时,它将自动恢复。
我已经打开了issue about this on GitHub,我很乐意为您提供帮助。但是,您应该尝试更新您的应用程序以使用最新版本的Meteor和此软件包。