グループメッセージ

ユースケース

グループ内でのメッセージ送受信

グループメンバーは、グループ内でメッセージを送受信します。

App管理者のメッセージ送信

グループチャットメッセージは、App管理者がバックグラウンドでメッセージ送信することも、他のユーザーになりすまして送信することもできます(App管理者または送信者がグループメンバーでなくても、メッセージは送信されます)。

App管理者によるシステムメッセージのシミュレーション

App管理者がバックグラウンドでメッセージを送信することによって、システムメッセージをシミュレーションし、システムメッセージの形式でオンラインのグループメンバーに通知することができます。App端末は、App管理者からカスタムメッセージを受信すると、特殊処理を行うことができます。

グループメッセージのSEQメカニズム

IMは、グループごとにメッセージSEQを保持します。SEQの初期値は1です。グループで通常メッセージが生成されるたびに、IMバックグラウンドは、現在のSEQ値をメッセージのSEQとして使用し、SEQを1ずつ増やします。 グループID + SEQは、メッセージの一意の識別子に相当します。
ご注意:
IMは、ローミングメッセージにのみ増分SEQを生成します。

グループメッセージタイプ

メッセージタイプ
説明
テキストメッセージ
メッセージの内容は通常のテキストです
画像メッセージ
メッセージの内容は、画像のURLアドレス、サイズ、画像サイズなどの情報です
絵文字
絵文字は開発者向けにカスタマイズされています
音声メッセージ
音声データは秒単位で時間の長さ情報を提供する必要があります
地理的位置メッセージ
メッセージの内容は、地名、経度、緯度の情報です
ファイルメッセージ
メッセージの内容は、ファイルのURLアドレス、サイズ、形式などの情報であり、形式に制限はなく、最大100Mをサポートします
UGSVメッセージ
メッセージの内容は、UGSVファイルのURLアドレス、長さ、サイズ、形式などの情報で、最大100Mをサポートします
カスタムメッセージ
Red Packetメッセージ、ジャンケンなど、開発者がカスタマイズしたメッセージタイプです
システム通知メッセージ
内蔵されているシステム通知メッセージと開発者がカスタマイズしたシステム通知メッセージがあります

グループメッセージ能力

タイプ
機能説明
ユースケース
グループ通常メッセージの送信
グループメンバーはIM SDKインターフェースを介してメッセージを送信できます。App管理者は、グループに参加しなくても、REST APIを呼び出して任意のグループでメッセージを送信できます。
グループメンバーはグループ内でメッセージを送信し、App管理者は任意のグループにメッセージを送信します
グループシステムメッセージの送信
App管理者は、グループに参加しなくても、REST APIを呼び出してグループでシステム通知を送信できます。システム通知は、オンラインのグループメンバーのみがメッセージを受信し、ローミング機能を備えません。
App管理者は、一部またはすべてのオンラインのグループメンバーに、時間制限のあるリマインダをプッシュします
グループメッセージのオフラインプッシュ
Apple、Huawei、Xiaomi、OPPO、vivo、Meizuといったブランドの携帯電話のオフラインプッシュをサポートします
グループチャットメッセージのオフラインプッシュ
グループのオンラインメッセージの受信
グループメンバーは、IM SDKを介してグループチャットのオンラインメッセージを受信できます
オンラインのグループメンバーはグループメッセージをリアルタイムで受信します
グループメンバーによるオフラインメッセージやメッセージ履歴の取得
グループメンバーは、IM SDKインターフェースを介してメッセージ履歴をクエリします
グループメンバーがオンラインになってオフラインメッセージを受信し、グループメンバーがグループチャットの記録を確認します
Appバックグラウンドでのグループメッセージの取得
App管理者は、REST APIを介して一定期間にAppが生成するすべてのメッセージをダウンロードできます。App管理者は、REST APIを介して任意のグループチャット記録を取得することもできます。Appバックグラウンドは、グループでの発言後コールバックを通じて、グループメッセージをリアルタイムで取得できます。
Appがメッセージ記録を定期的にバックアップするシナリオ、Appが指定されたグループのメッセージ履歴をすばやく取得する必要があるシナリオ、Appがグループメッセージをリアルタイムで取得する必要があるシナリオ
メッセージの削除
メッセージが伝播されないように、REST APIを介してメッセージ履歴を削除することができます
グループ内の悪意のある情報を削除します
グループチャットメッセージで送信者情報を含める
グループメッセージに送信者のニックネーム、プロファイルフォト、グループのプロファイル、ユーザーディメンションのカスタムフィールド、グループメンバーディメンションのカスタムフィールドを含めます
送信者のニックネーム、プロファイルフォトなどの情報を表示します
グループメッセージ送信の制御
発言禁止およびグループメッセージ送信前のコールバックは、グループメッセージ送信を制御する2つの方法です。
グループ内の特定のメンバーがメッセージを送信することを禁止します。グループ内のすべてのメンバーがメッセージを送信することを禁止します。Appバックグラウンドでメッセージをフィルター処理または変更します
グループメッセージ受信の制御
ユーザーは、1つのグループに対して、受信と表示、受信と非表示、メッセージのブロックを含む異なるメッセージ受信オプションを設定します。「受信と非表示」設定後、iOS端末はAPNsプッシュ機能を削除します
ユーザーが特定のグループからのメッセージをブロックします
グループメッセージの頻度制御
通常のグループメッセージの送信頻度を制御します。デフォルト値は1秒あたり40件です。頻度制御オブジェクトには、App管理者がREST APIを使用して送信したグループシステムメッセージが含まれません。詳しくは、以下のメッセージ優先度と頻度制御をご参照ください。
メッセージによる画面リフレッシュを回避します
ご注意:
送信者のニックネームとプロファイルフォトを含める必要がある場合は、これら2つのフィールドの情報をIMのユーザー個人情報にインポートする必要があります。 カスタム情報を含める必要がある場合は、最初にコンソールでカスタムフィールドを設定してから、メッセージ内に対応するフィールドを含むチケット申請を提出する必要があります。

グループメッセージ送信の制御

次の方法を通じてグループメッセージの送信を制御することができます:
制御方法
詳細説明
グループ内の発言禁止
特定のユーザーが一定期間内にグループ内で発言することを禁止します。1つのグループに対してのみ有効です。ユーザーがグループから退出し、グループに再参加した場合でも、発言禁止期間が経過していない限り、禁止は引き続き有効です
グループメッセージ送信前のコールバック
グループメッセージをグループメンバーに送信する前に、IMバックグラウンドは、最初にAppバックグラウンドにアクセスしてメッセージの送信を許可するかどうかを確認します。許可されていない場合は、メッセージの送信を拒否します。
Appバックグラウンドがコールバックを受信した後、メッセージの内容を変更してIMに返すこともできます。IMは、変更後の情報を使用してメッセージを送信します。詳細については、グループ内での発言前のコールバックをご参照ください。
しかし、IMがコールバックを開始した後、最大2秒間のみ待機します。2秒以内にレスポンスがない場合、メッセージは再試行せずにグループメンバーに直接送信されます

メッセージの優先度と頻度制御

グループメッセージの優先度
グループメッセージの優先度は3段階に分かれ、グループメッセージが頻度制限を超えた場合、バックグラウンドは優先度の高いメッセージを優先的に送信します。このため、ユーザーはメッセージの重要度に応じて、適切な優先度を選択する必要があります。 3段階の優先度は高いほうから順に、それぞれ次のようになります:
優先度
この優先度のメッセージタイプを選択することをお勧めします
High
レットパケットメッセージとプレゼントメッセージ
Normal
通常のテキストメッセージ
Low
いいねのメッセージ

グループメッセージの頻度制御

メッセージ総数の頻度制御

説明:
メッセージ総数の頻度制御とは、1つのグループが1秒間に送信できる最大メッセージ数の制限であり、デフォルト値は40件/秒で、毎秒平均の頻度制限を採用します。メッセージ数が制限を超過すると、バックグラウンドは優先度が相対的に高いメッセージを優先的に送信します。優先度が同等のメッセージの順序はランダムとなります。
頻度制限の対象となったメッセージは送信されず、メッセージ履歴にも保存されませんが、送信者には成功と返されます。グループ内での発言前のコールバックはトリガーされますが、グループ内での発信後のコールバックはトリガーされません。

優先度の頻度制御

優先度の頻度制御とは、1つのグループが1秒間に送信できる特定の優先度のメッセージの最大数であり、メッセージ送信リクエストは、メッセージ総数の頻度制御の後にのみ、優先度の頻度制御に進むことができます。
すべてのメッセージには、40件/秒の頻度制限が適用されます。3つの優先度を設定できます。優先度Highに設定されたメッセージは、制限されないように最高の優先度を持ちます。同じ秒の高優先度のメッセージの総数が40件/秒を超えると、優先度の高いメッセージも破棄されます。

グループオフラインメッセージの処理フロー





グループオフラインメッセージの処理フローは次のとおりです:

1. ユーザーAがsendMessageを呼び出して、ユーザーCにメッセージを送信します。ユーザーBはオフライン状態です。 1.1 グループCをユーザーBの最近の連絡先に追加します(キャッシュサイズは100)。 1.2 ユーザーは、グループの最新のメッセージseqを含む、グループのメッセージ情報を更新します。 1.3 メッセージをローミングサーバーに保存します(期限は7日間)。
2. ユーザーBがloginインターフェースを呼び出して、IMにログインします。
3. SDKは、最新のメッセージseqと未読数を含む、すべてのグループメッセージseq情報を自動的にプルします。
4. SDKは、最新の連絡先を自動的にプルし、OnNewMessageインターフェースを介してスローします。
5. メッセージ同期プロセスが完了します。OnRefreshインターフェースを介してグループメッセージ同期が完了したことをユーザーに通知します。
6. ユーザーがgetMessageを呼び出して、SDKはローミングサーバーを自動的にプルします。