如何在受影响的记录处于飞行状态时确保pushPayload不会发生?

时间:2016-07-18 21:05:11

标签: ember.js ember-data

我正在尝试将更传统的基于ember数据的应用程序转换为使用websockets来保持多个实例同步的实时应用程序。

我的第一次尝试涉及将所有更新的记录发送回已访问记录的所有打开会话,以便他们都可以拥有最新的副本。这包括启动更改的会话。这意味着在我在客户端中调用record.save()之后,我从REST API和websocket中获取更新的副本。 websocket的客户端只需调用store.pushPayload(data)来更新商店。

这会导致问题,因为当时记录可能是inFlight,我收到错误:

Attempted to handle event `pushedData` on [...] while in state root.deleted.inFlight.

我有几点想法:

  1. 以某种方式阻止客户端收回自己的记录,并仅将其发送到其他websocket连接。
  2. 以某种方式同步对商店的访问,以便在我致电pushPayload时,受影响的记录不在飞行中。
  3. 这两个看起来都相当复杂,我希望有一种既定方法可以让多个Ember应用程序保持最新状态。

0 个答案:

没有答案