Chat SDK for Unity and Windows v1.3.1
Public 成员函数 | 静态 Public 成员函数 | Public 属性 | 属性 | 所有成员列表
AgoraChat.Message类 参考
类 AgoraChat.Message 继承关系图:

Public 成员函数

void SetRoomMessagePriority (RoomMessagePriority priority)
 
List< MessageReactionReactionList ()
 
 Message (IMessageBody body=null)
 

静态 Public 成员函数

static Message CreateReceiveMessage ()
 
static Message CreateSendMessage (string to, IMessageBody body, MessageDirection direction=MessageDirection.SEND, bool hasRead=true)
 
static Message CreateTextSendMessage (string userId, string content)
 
static Message CreateFileSendMessage (string userId, string localPath, string displayName="", long fileSize=0)
 
static Message CreateImageSendMessage (string userId, string localPath, string displayName="", long fileSize=0, bool original=false, double width=0, double height=0)
 
static Message CreateVideoSendMessage (string userId, string localPath, string displayName="", string thumbnailLocalPath="", long fileSize=0, int duration=0, double width=0, double height=0)
 
static Message CreateVoiceSendMessage (string userId, string localPath, string displayName="", long fileSize=0, int duration=0)
 
static Message CreateLocationSendMessage (string userId, double latitude, double longitude, string address="", string buildingName="")
 
static Message CreateCmdSendMessage (string userId, string action, bool deliverOnlineOnly=false)
 
static Message CreateCustomSendMessage (string userId, string customEvent, Dictionary< string, string > customParams=null)
 
static Message CreateCombineSendMessage (string userId, string title, string summary, string compatibleText, List< string > messageList)
 
static AttributeValueType GetAttributeValueType (AttributeValue value)
 
static void SetAttribute (Dictionary< string, AttributeValue > arriMap, string key, in object value, AttributeValueType type)
 
static T GetAttributeValue< T > (AttributeValue value, out bool found)
 
static T GetAttributeValue< T > (Dictionary< string, AttributeValue > arriMap, string key, out bool found)
 

Public 属性

string MsgId = ((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds) + Tools.GetRandom()).ToString()
 
string ConversationId = ""
 
string From = ""
 
string To = ""
 
MessageType MessageType
 
bool DeliverOnlineOnly = false
 
MessageDirection Direction
 
MessageStatus Status
 
long LocalTime = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds)
 
long ServerTime = 0
 
bool HasDeliverAck = false
 
bool HasReadAck = false
 
bool IsNeedGroupAck = false
 
bool IsRead = false
 
bool MessageOnlineState = false
 
IMessageBody Body
 
Dictionary< string, AttributeValue > Attributes
 
bool IsThread = false
 
bool Broadcast = false
 
bool IsContentReplaced = false
 

属性

int GroupAckCount [get]
 
PinnedInfo PinnedInfo [get]
 
List< string > ReceiverList [get, set]
 
ChatThread ChatThread [get]
 

成员函数说明

◆ SetRoomMessagePriority()

void AgoraChat.Message.SetRoomMessagePriority ( RoomMessagePriority  priority)

设置聊天室消息优先级。

◆ ReactionList()

List< MessageReaction > AgoraChat.Message.ReactionList ( )

获取 Reaction 列表。

返回
Reaction 列表。

◆ CreateReceiveMessage()

static Message AgoraChat.Message.CreateReceiveMessage ( )
static

创建一条接收的消息。

◆ CreateSendMessage()

static Message AgoraChat.Message.CreateSendMessage ( string  to,
IMessageBody  body,
MessageDirection  direction = MessageDirection.SEND,
bool  hasRead = true 
)
static

创建一条发送的消息。

参数
to消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
body消息体。
direction消息方向,设置为 SEND
  • SEND: 发送该消息。
  • RECEIVE: 接收该消息。
hasRead是否需要已读回执。

◆ CreateTextSendMessage()

static Message AgoraChat.Message.CreateTextSendMessage ( string  userId,
string  content 
)
static

创建一条文本发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
content文本内容。

◆ CreateFileSendMessage()

static Message AgoraChat.Message.CreateFileSendMessage ( string  userId,
string  localPath,
string  displayName = "",
long  fileSize = 0 
)
static

创建一条文件发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
localPath文件的本地路径。
displayName文件的显示名称。
fileSize文件大小,单位为字节。

◆ CreateImageSendMessage()

static Message AgoraChat.Message.CreateImageSendMessage ( string  userId,
string  localPath,
string  displayName = "",
long  fileSize = 0,
bool  original = false,
double  width = 0,
double  height = 0 
)
static

创建一条图片发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
localPath图片的本地路径。
displayName图片的显示名称。
fileSize图片大小,单位为字节。
original是否发送原图。
  • true: 发送原图。
  • (默认) false: 发送缩略图。若图片超过 100 KB,SDK 会先压缩图片,然后发送缩略图。
width图片宽度,单位为像素。
heigh图片高度,单位为像素。

◆ CreateVideoSendMessage()

static Message AgoraChat.Message.CreateVideoSendMessage ( string  userId,
string  localPath,
string  displayName = "",
string  thumbnailLocalPath = "",
long  fileSize = 0,
int  duration = 0,
double  width = 0,
double  height = 0 
)
static

创建一条视频发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
localPath视频文件的 URI。
displayName视频文件的显示名称。
thumbnailLocalPath缩略图的本地路径。
fileSize视频文件的大小,单位为字节。
duration视频时间长度,单位为秒。
width视频宽度,单位为像素。
heigh视频高度,单位为像素。

◆ CreateVoiceSendMessage()

static Message AgoraChat.Message.CreateVoiceSendMessage ( string  userId,
string  localPath,
string  displayName = "",
long  fileSize = 0,
int  duration = 0 
)
static

创建一条语音发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
localPath语音文件的本地路径。
displayName语音文件的显示名称。
fileSize语音文件的大小,单位为字节。
duration语音时间长度,单位为秒。

◆ CreateLocationSendMessage()

static Message AgoraChat.Message.CreateLocationSendMessage ( string  userId,
double  latitude,
double  longitude,
string  address = "",
string  buildingName = "" 
)
static

创建一条位置发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
latitude纬度。
longitude经度。
address位置详情。
buildingName建筑物名称。

◆ CreateCmdSendMessage()

static Message AgoraChat.Message.CreateCmdSendMessage ( string  userId,
string  action,
bool  deliverOnlineOnly = false 
)
static

创建一条命令发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
action命令内容。
  • true:只投在线用户。
  • (默认) false:不管用户是否在线均投递。

◆ CreateCustomSendMessage()

static Message AgoraChat.Message.CreateCustomSendMessage ( string  userId,
string  customEvent,
Dictionary< string, string >  customParams = null 
)
static

创建一条自定义发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
customEvent自定义事件。
customParams自定义参数字典。

◆ CreateCombineSendMessage()

static Message AgoraChat.Message.CreateCombineSendMessage ( string  userId,
string  title,
string  summary,
string  compatibleText,
List< string >  messageList 
)
static

创建一条合并消息的发送消息。

参数
userId消息接收方。
  • 单聊:对端用户 ID;
  • 群组聊天:群组 ID;
  • 聊天室:聊天室 ID;
  • 子区:子区 ID。
title合并消息的标题。该字段可以设置为 null 或者空字符串。
summary合并消息的概要。该字段可以设置为 null 或者空字符串。
compatibleText合并消息的兼容信息。该字段可以设置为 null 或者空字符串。该字段用于需要兼容不支持合并转发消息的版本。
messageList合并消息的消息 ID 列表。列表不可为null或者空,最多可包含 300 个消息 ID。

◆ GetAttributeValueType()

static AttributeValueType AgoraChat.Message.GetAttributeValueType ( AttributeValue  value)
static

获取扩展属性的类型。

参数
value扩展属性实例。

◆ SetAttribute()

static void AgoraChat.Message.SetAttribute ( Dictionary< string, AttributeValue >  arriMap,
string  key,
in object  value,
AttributeValueType  type 
)
static

设置单个扩展属性。

参数
arriMap要新增扩展属性的字典。
key新增扩展属性的关键字。
type扩展属性的类型。
value扩展属性的值。

◆ GetAttributeValue< T >() [1/2]

static T AgoraChat.Message.GetAttributeValue< T > ( AttributeValue  value,
out bool  found 
)
static

获取单个扩展属性的泛型类型 T 的数据。

参数
value扩展属性的值。
found扩展属性的值中是否包含泛型类型 T 的数据。
返回
返回泛型类型 T 的数据。
  • foundtrue 时,返回泛型类型 T 的数据
  • foundfalse 时,返回 null

◆ GetAttributeValue< T >() [2/2]

static T AgoraChat.Message.GetAttributeValue< T > ( Dictionary< string, AttributeValue >  arriMap,
string  key,
out bool  found 
)
static

从扩展属性字典中获取单个扩展属性的泛型类型 T 的数据。

参数
arriMap扩展属性字典。
key扩展属性在字典中的关键字。
found扩展属性的值中是否包含泛型类型 T 的数据。
返回
泛型类型 T 的数据。
  • foundtrue 时,返回泛型类型 T 的数据
  • foundfalse 时,返回 null

类成员变量说明

◆ MsgId

string AgoraChat.Message.MsgId = ((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds) + Tools.GetRandom()).ToString()

消息的 ID。

◆ ConversationId

string AgoraChat.Message.ConversationId = ""

消息所属会话的 ID。

◆ From

string AgoraChat.Message.From = ""

消息发送者的用户 ID。

◆ To

string AgoraChat.Message.To = ""

消息接收方,可以是:

  • 单聊:用户 ID;
  • 群组:群组 ID;
  • 聊天室:聊天室 ID。

◆ MessageType

MessageType AgoraChat.Message.MessageType

聊天类型。

  • Chat:单聊;
  • Group:群聊;
  • Room:聊天室;

◆ DeliverOnlineOnly

bool AgoraChat.Message.DeliverOnlineOnly = false

消息是否只投递给在线用户:

  • true:只有消息接收方在线时才能投递成功。若接收方离线,则消息会被丢弃。
  • (默认)false:如果用户在线,则直接投递;如果用户离线,消息会在用户上线时投递。

◆ Direction

MessageDirection AgoraChat.Message.Direction

消息方向。

  • SEND:该消息由当前用户发出;
  • RECEIVE:该消息由当前用户接收;

详见 Direct

◆ Status

MessageStatus AgoraChat.Message.Status

消息的状态,包含以下状态:

  • CREATE:消息已创建;
  • PROGRESS:消息正在发送;
  • SUCCESS:消息成功发送;
  • FAIL:消息发送失败。

◆ LocalTime

long AgoraChat.Message.LocalTime = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds)

消息的本地创建 Unix 时间戳,单位为毫秒。

◆ ServerTime

long AgoraChat.Message.ServerTime = 0

消息的服务器接收的 Unix 时间戳,单位为毫秒。

◆ HasDeliverAck

bool AgoraChat.Message.HasDeliverAck = false

消息是否已送达对方。

  • true: 已送达;
  • false: 未送达。

◆ HasReadAck

bool AgoraChat.Message.HasReadAck = false

消息是否已读。

  • true: 已读;
  • false: 未读。

◆ IsNeedGroupAck

bool AgoraChat.Message.IsNeedGroupAck = false

群组消息是否需要已读回执。

  • true:需要;
  • false:不需要。

◆ IsRead

bool AgoraChat.Message.IsRead = false

消息是否已读。

注解
如果要设置消息已读,建议在会话中,使用 IConversation#MarkAllMessageAsRead()

◆ MessageOnlineState

bool AgoraChat.Message.MessageOnlineState = false

是否为在线消息。

返回
是否在线。
  • true:是。
  • false:否。

◆ Body

IMessageBody AgoraChat.Message.Body

消息体。

◆ Attributes

Dictionary<string, AttributeValue> AgoraChat.Message.Attributes

消息扩展。

◆ IsThread

bool AgoraChat.Message.IsThread = false

是否是 Thread 消息:

  • true:是;
  • false:否。

该属性为只读属性。

◆ Broadcast

bool AgoraChat.Message.Broadcast = false

是否是聊天室全局广播消息:

  • true:是;
  • false:否。

该属性为只读属性。

◆ IsContentReplaced

bool AgoraChat.Message.IsContentReplaced = false

内容是否被替换:

  • true:是;
  • false:否。

该属性为只读属性。

属性说明

◆ GroupAckCount

int AgoraChat.Message.GroupAckCount
get

获取群组消息的已读回执数。

返回
群组消息的已读回执数。

◆ PinnedInfo

PinnedInfo AgoraChat.Message.PinnedInfo
get

获取当前消息的置顶信息。

返回
置顶信息。

◆ ReceiverList

List<string> AgoraChat.Message.ReceiverList
getset

定向消息的接收方。

该属性仅对群组聊天和聊天室中的消息有效。

◆ ChatThread

ChatThread AgoraChat.Message.ChatThread
get

获取子区概览信息。

子区概览信息仅在创建子区后携带。