频道相关
更新时间: 2022/08/29 04:05:19
参数限制说明
限制项 | 说明 |
---|---|
频道名称长度 | 长度限制:128 字符 |
频道扩展字段 | 长度限制:4096 字符 |
频道成员人数 | 人数限制:100 人 |
创建频道
API介绍
创建频道后并不会主动加入频道,需要手动加入频道。该接口用户创建频道,同一时刻频道名互斥,不能重复创建。但如果频道名缺省,服务器会自动分配频道id。
对于频道在创建后如果没人加入,有效期2小时,当有成员加入后会自动延续频道有效期。当主动关闭频道或者最后一个成员退出后2小时后频道销毁。
API原型
-
C++
static void SignalingCreate(SignalingCreateParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_create(struct NIMSignalingCreateParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回中10405代表房间已经存在。其他非200是房间生成错误, 参考错误码。
示例
- C++
void CallbackCreateChannel(int code, std::shared_ptr<SignalingResParam> res_param) { std::string cid; if (code == 200) { if (res_param) { SignalingCreateResParam* res = (SignalingCreateResParam*)res_param.get(); //To do } } } void CreateChannel() { SignalingCreateParam param; param.channel_type_ = GetSignalingType(); param.channel_name_ = GetSignalingItemStr(IDC_EDIT_CNAME); param.channel_ext_ = GetSignalingItemStr(IDC_EDIT_CEXT); Signaling::SignalingCreate(param, &CallbackCreateChannel); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (opt_res_param) { NIMSignalingCreateResParam* param = (NIMSignalingCreateResParam*)opt_res_param; //To do } //To do } typedef bool(*nim_signaling_create)(struct NIMSignalingCreateParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_create func = (nim_signaling_create) GetProcAddress(hInst, "nim_signaling_create"); NIMSignalingCreateParam param; //param.channel_type_ = channel_type_; //param.channel_name_ = (char*)channel_name_.c_str(); //param.channel_ext_ = (char*)channel_ext_.c_str(); func(¶m, &OnOptCallback, NULL); }
加入频道
API介绍
加入频道接口。
API原型
-
C++
static void Join(SignalingJoinParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_join(struct NIMSignalingJoinParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10407、10417、10419、10420, 参考错误码。
示例
- C++
void CallbackJoin(int code, std::shared_ptr<SignalingResParam> res_param) { std::string cid = GetSignalingItemStr(IDC_EDIT_CID); if (code == 200) { if (res_param) { SignalingJoinResParam* res = (SignalingJoinResParam*)res_param.get(); //To do } } } void Join() { SignalingJoinParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.uid_ = GetSignalingItemInt64(IDC_EDIT_UID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); Signaling::Join(param, &CallbackJoin); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (opt_res_param) { SignalingJoinResParam* param = (SignalingJoinResParam*)opt_res_param; //To do } //To do } typedef bool(*nim_signaling_join)(struct NIMSignalingJoinParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_join func = (nim_signaling_join) GetProcAddress(hInst, "nim_signaling_join"); NIMSignalingJoinParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.uid_ = uid_; //param.offline_enabled_ = offline_enabled_; func(¶m, &OnOptCallback, NULL); }
离开频道
API介绍
离开频道接口。
API原型
-
C++
static void Leave(SignalingLeaveParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_leave(struct NIMSignalingLeaveParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10406, 参考错误码。
示例
- C++
void CallbackLeave(int code, std::shared_ptr<SignalingResParam> res_param) { //to do } void Leave() { SignalingLeaveParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); Signaling::Leave(param, &CallbackLeave); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { //To do } typedef bool(*nim_signaling_leave)(struct NIMSignalingLeaveParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_leave func = (nim_signaling_leave) GetProcAddress(hInst, "nim_signaling_leave"); NIMSignalingLeaveParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; func(¶m, &OnOptCallback, NULL); }
关闭频道
API介绍
关闭销毁频道。
API原型
-
C++
static void SignalingClose(SignalingCloseParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_close(struct NIMSignalingCloseParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10406, 参考错误码。
示例
- C++
void CallbackClose(int code, std::shared_ptr<SignalingResParam> res_param) { //to do } void Close() { SignalingCloseParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); Signaling::SignalingClose(param, &CallbackClose); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { //To do } typedef bool(*nim_signaling_close)(struct NIMSignalingCloseParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_close func = (nim_signaling_close) GetProcAddress(hInst, "nim_signaling_close"); NIMSignalingCloseParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; func(¶m, &OnOptCallback, NULL); }
查询频道接口
API介绍
查询频道接口。该接口可以根据频道名查询频道信息。
API原型
-
C++
static void QueryChannelInfo(SignalingQueryChannelInfoParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_query_channel_info(struct NIMSignalingQueryChannelInfoParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回参考错误码。
示例
- C++
void CallbackQueryInfo(int code, std::shared_ptr<SignalingResParam> res_param) { std::string cid = GetSignalingItemStr(IDC_EDIT_CID); if (code == 200) { if (res_param) { SignalingQueryChannelInfoResParam* res = (SignalingQueryChannelInfoResParam*)res_param.get(); //to do } } } void QueryInfo() { SignalingQueryChannelInfoParam param; param.channel_name_ = GetSignalingItemStr(IDC_EDIT_CNAME); Signaling::QueryChannelInfo(param, &CallbackQueryInfo); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { //To do } typedef bool(*nim_signaling_query_channel_info)(struct NIMSignalingQueryChannelInfoParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_query_channel_info func = (nim_signaling_query_channel_info) GetProcAddress(hInst, "nim_signaling_query_channel_info"); NIMSignalingQueryChannelInfoParam param; //param.channel_name_ = (char*)channel_name_.c_str(); func(¶m, &OnOptCallback, NULL); }