频道相关

更新时间: 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(&param, &OnOptCallback, NULL);
    }
    

加入频道

API介绍

加入频道接口。

API原型

参数说明

参数 类型 说明
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(&param, &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(&param, &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(&param, &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(&param, &OnOptCallback, NULL);
    }
    
此文档是否对你有帮助?
有帮助
去反馈
  • 参数限制说明
  • 创建频道
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 加入频道
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 离开频道
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 关闭频道
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 查询频道接口
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例