IM SDK 中会话(Conversation)分为两种。
创建会话。
原型
TIM_DECL int TIMConvCreate(const char* conv_id, enum TIMConvType conv_type, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
---|---|---|
conv_id | const char* | 会话的 ID |
conv_type | enum TIMConvType | 会话类型,请参考 TIMConvType |
cb | TIMCommCallback | 创建会话的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
---|---|
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明:
- 会话是指面向一个人或者一个群组的对话,通过与单个人或群组之间会话收发消息。
- 此接口创建或者获取会话信息,需要指定会话类型(群组或者单聊),以及会话对方标志(对方帐号或者群号)。会话信息通过 cb 回传。
示例一、获取对方 UserID 为 Windows-02 的单聊会话示例
const void* user_data = nullptr; // 回调函数回传
const char* userid = "Windows-02";
int ret = TIMConvCreate(userid, kTIMConv_C2C, [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
if (ERR_SUCC != code) {
return;
}
// 回调返回会话的具体信息
}, user_data);
if (ret != TIM_SUCC) {
// 调用 TIMConvCreate 接口失败
}
示例二、获取群组 ID 为 Windows-Group-01 的群聊会话示例
const void* user_data = nullptr; // 回调函数回传
const char* userid = "Windows-Group-01";
int ret = TIMConvCreate(userid, kTIMConv_Group, [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
if (ERR_SUCC != code) {
return;
}
// 回调返回会话的具体信息
}, user_data);
if (ret != TIM_SUCC) {
// 调用 TIMConvCreate 接口失败
}
删除会话。
原型
TIM_DECL int TIMConvDelete(const char* conv_id, enum TIMConvType conv_type, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
---|---|---|
conv_id | const char* | 会话的 ID |
conv_type | enum TIMConvType | 会话类型,请参考 TIMConvType |
cb | TIMCommCallback | 删除会话成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
---|---|
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明:此接口用于删除会话,删除会话是否成功通过回调返回。
获取最近联系人的会话列表。
原型
TIM_DECL int TIMConvGetConvList(TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
---|---|---|
cb | TIMCommCallback | 获取最近联系人会话列表的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
---|---|
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
设置指定会话的草稿。
原型
TIM_DECL int TIMConvSetDraft(const char* conv_id, enum TIMConvType conv_type, const char* json_draft_param);
参数
参数 | 类型 | 含义 |
---|---|---|
conv_id | const char* | 会话的 ID |
conv_type | enum TIMConvType | 会话类型,请参考 TIMConvType |
json_draft_param | const char* | 被设置的草稿 JSON 字符串 |
返回值
类型 | 含义 |
---|---|
int | 返回 TIM_SUCC 表示接口调用成功,其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明:会话草稿一般用在保存用户当前输入的未发送的消息。
示例
Json::Value json_value_text; // 构造消息
json_value_text[kTIMElemType] = kTIMElem_Text;
json_value_text[kTIMTextElemContent] = "this draft";
Json::Value json_value_msg;
json_value_msg[kTIMMsgElemArray].append(json_value_text);
Json::Value json_value_draft; // 构造草稿
json_value_draft[kTIMDraftEditTime] = time(NULL);
json_value_draft[kTIMDraftUserDefine] = "this is userdefine";
json_value_draft[kTIMDraftMsg] = json_value_msg;
if (TIM_SUCC != TIMConvSetDraft(userid.c_str(), TIMConvType::kTIMConv_C2C, json_value_draft.toStyledString().c_str())) {
// TIMConvSetDraft 接口调用失败
}
// json_value_draft.toStyledString().c_str() 得到 json_draft_param JSON 字符串如下
{
"draft_edit_time" : 1551271429,
"draft_msg" : {
"message_elem_array" : [
{
"elem_type" : 0,
"text_elem_content" : "this draft"
}
]
},
"draft_user_define" : "this is userdefine"
}
删除指定会话的草稿。
原型
TIM_DECL int TIMConvCancelDraft(const char* conv_id, enum TIMConvType conv_type);
参数
参数 | 类型 | 含义 |
---|---|---|
conv_id | const char* | 会话的 ID |
conv_type | enum TIMConvType | 会话类型,请参考 TIMConvType |
返回值
类型 | 含义 |
---|---|
int | 返回 TIM_SUCC 表示接口调用成功,其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
ROS支持通过控制台、API或ALIYUN CLI的方式通过创建更改集创建资源栈,在您执行...
伸缩策略可以触发伸缩活动,是对伸缩组中实例数量或带宽进行调整的一种方式。伸...
网站 域名 怎么申请?域名是用户访问网站的入口,是网站在互联网中的门牌号。域...
TOP云 (west.cn)6月22日消息,昨天晚上投资人周峰在朋友圈曝料称,以中五位数...
使用的数据透视表的都知道,透视表只能从单个表中取数,如果想把其他表中的数据...
2020年对于云计算领域来说是具有标志性的一年。 这一年,混合多云领域的发展势头...
大家好,我是早起。 在之前的办公自动化系列文章中,我已经对Python操作Excel的...
内网DNS是华为云云解析服务提供的专门用于在VPC内使用的DNS,主要负责: 处理内...
来源 | 飞天CIO学堂微信公众号 图为浙商证券研究所联席所长邱世梁 导语 作为一家...
服务器租用是指用户租用IDC服务商的服务器,用户根据网站的需求选择合适的服务器...