获取RequestFactory请求的Channel Client ID

时间:2012-01-29 23:39:00

标签: google-app-engine requestfactory channel-api

有没有办法在服务器上获取Channel ID或在RequestFactory调用中传输它?

情况:

  • 用户启动应用程序,正在打开一个频道。
  • 用户使用RequestFactory(requests.persist().using(...).fire(...))保留实体。
  • 服务器上的persist()方法ping所有连接的客户端,告诉他们该实体已更新。

但是,进行初始更改的用户不必进行ping操作。有没有办法找出哪个客户做出了改变?知道用户是不够的,因为一个用户可能已经打开了几个窗口(频道)。

1 个答案:

答案 0 :(得分:0)

老实说,我还没有使用过Channel API,但根据文档,每个客户端都被视为单独的用户。所以解决方案超出了GAE API,我认为你有两个选择:

  1. 在客户端上创建可能会映射到多个渠道的逻辑用户ID。这样你就会知道要跳过哪些渠道。
  2. 无论如何Ping所有频道,但发送新持久化实体的数字版本。然后,客户会将收到的版本与其拥有的版本进行比较,如果它更高,则表示需要再次调用findModel(id)