1

サーバーでチャネルIDを取得したり、RequestFactory呼び出し内で送信したりする方法はありますか?

状況:

  • ユーザーがアプリケーションを起動し、チャネルが開かれています。
  • ユーザーはRequestFactory(requests.persist().using(...).fire(...))を使用してエンティティを永続化します。
  • サーバー上のpersist()メソッドは、接続されているすべてのクライアントにpingを実行して、エンティティが更新されたことを通知します。

ただし、最初の変更を行ったユーザーにpingを実行する必要はありません。どのクライアントが変更を加えたかを確認する方法はありますか?1人のユーザーが複数のウィンドウ(チャネル)を開いている可能性があるため、ユーザーを知るだけでは不十分です。

4

1 に答える 1

0

正直なところ、私はまだ Channel API を使用していませんが、ドキュメントによると、各クライアントは個別のユーザーとして扱われます。したがって、解決策はGAE APIを超えており、2つのオプションがあると思います:

  1. おそらく複数のチャネルにマップされるクライアントで論理ユーザー ID を作成します。そうすれば、スキップするチャンネルがわかります。
  2. とにかくすべてのチャネルに ping を実行しますが、新しく永続化されたエンティティの数値バージョンを送信します。次に、クライアントは受信したバージョンとそれが持っているものを比較し、それが高い場合はfindModel(id)再度呼び出す必要があることを意味します。
于 2012-03-02T22:36:15.700 に答える