# 聊天历史记录

> Retrieve and manage chat message history.

## 频道文本消息历史记录

Vivox 允许用户使用 [`VivoxService.Instance.GetChannelTextMessageHistoryAsync(string channelName, int requestSize = 10, ChatHistoryQueryOptions chatHistoryQueryOptions = null)`](https://docs.unity3d.com/Packages/com.unity.services.vivox@latest/index.html?subfolder=/api/Unity.Services.Vivox.IVivoxService.html#Unity_Services_Vivox_IVivoxService_GetChannelTextMessageHistoryAsync_System_String_System_Int32_Unity_Services_Vivox_ChatHistoryQueryOptions_) 访问频道文本活动的历史记录，其中 `channelName` 是要请求相应历史记录的频道的名称，`requestSize` 是最多要返回的消息数（默认值为 10），`chatHistoryQueryOptions` 是一个可选参数，可以执行多种操作，例如指定消息中包含的单词或短语、消息的特定 PlayerId 发送方，或前后查询时间。如需了解有关 `ChatHistoryQueryOption`s 的更多具体信息，请参阅 聊天历史记录查询选项。

`IReadOnlyCollection` 中返回的消息按从最新消息到最旧消息的顺序列出。

> **Note:**
>
> 聊天历史记录保存 7 天。如果正在使用[文本证据管理](/safe-text/text-evidence/text-evidence-management.md.md)，聊天历史记录的保存期限将延长至 30 天。

以下代码片段的示例说明如何从设置的 LobbyChannelName 中提取最近 25 条消息，然后按从旧到新的顺序记录发送方的显示名称和消息，而无需使用可选的 ChatHistoryQueryOptions。

```cs
public async void FetchHistoryAsync()
{
    var historyMessages = await VivoxService.Instance.GetChannelTextMessageHistoryAsync(LobbyChannelName, 10);
    //Reversing the messages so they display from oldest to newest
    var reversedMessages = historyMessages.Reverse();
    foreach(VivoxMessage message in reversedMessages)
    {
        Debug.Log($"{message.SenderDisplayName}: {message.MessageText}");
    }
}
```
