带有GraphQL的Angular服务器和客户端之间的同步倒数计时器

时间:2020-06-14 15:41:44

标签: angular postgresql graphql apollo countdown

我当前正在尝试构建一个在多个客户端之间同步的计时器。我在前端使用 Angular ,在 Hasura Apollo 的后端使用 GraphQL


当前情况:

到目前为止,我尝试在服务器上设置一个倒计时对象,其状态和持续时间以秒为单位。客户端可以订阅这些值,然后在前端执行实际的计时器。这样,我不必每秒请求服务器更新。 如果我有两个或多个打开网站的客户端并且其中一个开始倒计时,则此方法效果很好。我也可以重置计时器并停止它。但是,如果我停止了倒计时然后重新开始,则它将以总时间开始,因为它不知道计时器何时停止。 同样,当有人重新加载页面时,他们从服务器获取状态(“已暂停”或“正在运行”),但是他们不知道剩余时间,因此倒计时将在该客户端重新开始。

要求:

因此,基本上,我正在寻找一种对多个客户端进行倒计时的方法,他们可以设置持续时间,停止计时,重置计时,如果在倒计时运行或必须重新加载时进入,他仍将获得currentTime和可以将他的倒计时与其他人同步。 如果客户端失去了互联网连接,计时器也应该继续运行。

想法:

我当时正在考虑使用Date对象,但是,我还没有找到一种有前途的逻辑来实现所有功能 另一个想法是使用GraphQL的时间戳,但我没有找到太多有关如何执行此操作的信息 在服务器上也运行倒计时然后每次有人加入倒计时都要求这次有效吗?我该如何用Hasura做到这一点?

0 个答案:

没有答案