Rendezvous-Tokyo

ablyのチャットの履歴保持期間を伸ばす

無料アカウントでデフォルトが2分ですぐ消えちゃうので伸ばしてみた。

結論

公式: チャンネルルール (opens new window)によると、

Ably ダッシュボードでチャネル ルールを設定するには:

  1. Ably アカウントにサインインします。
  2. アプリを選択します。
    1.「設定」タブに移動します。
  3. [新しいルールの追加]をクリックします。
  4. ルールを適用するチャネル名または名前空間を選択します。
  5. 必要なルールを確認してください。

となっている。

設定タブを開く

「Add new rule」をクリック

ルールの設定をする

  1. チャンネル名前空間(namespace) (opens new window)を使うと複数チャンネルをグループにまとめて設定できる。
    画像ではprivateを指定している。
  2. Persist last messagePersist all messagesを必要に応じてチェックする。
    • Persist all messagesは無料アカウントの場合24時間保持とのこと。

Flutter側で名前空間とチャンネル名を設定する

例:

channel = realtime.channels.get("private:A-B") // privateが名前空間、A-Bがチャンネル名として作られる。

パラメータの説明

詳しくは公式: チャンネルルール (opens new window)を参照

Google翻訳にかける

パラメータ 説明
Persist last message 有効にすると、チャネルで公開された最後のメッセージが 1 年間保存されます。このメッセージは、 を使用してチャネルにアタッチすると、巻き戻しをrewind=1使用して取得できます。単一のプロトコル メッセージで複数のメッセージを送信する場合 (たとえば、publish()メッセージの配列を使用して呼び出しを行う場合)、それらすべてを 1 つのメッセージとして受信します。プレゼンス メッセージは保存されず、この方法で保存されたメッセージには履歴を使用してアクセスできないことに注意してください。このルールを使用して保存されたメッセージごとに、追加のメッセージが毎月の割り当てから差し引かれることに注意してください。
Persist all messages 有効にすると、チャネルで公開されたすべてのメッセージがアカウントのストレージ ルールに従って保存されます。これは、無料アカウントの場合は 24 時間、有料アカウントの場合は 72 時間です。この方法で保存されたメッセージには、履歴を使用してアクセスできます。このルールを使用して保存されたメッセージごとに、追加のメッセージが毎月の割り当てから差し引かれることに注意してください。

Flutterで履歴を取得する方法

詳しくはHistory (opens new window)を参照

ably.PaginatedResult<ably.Message> history = await channel.history(ably.RealtimeHistoryParams(
  direction: 'forwards',
  // limit: 10,
));

以上。