NIM 跨平台 C++ SDK
|
网易云信 IM 即时通讯服务基于网易二十余年的 IM 技术积累,致力于打造最稳定的即时通讯云平台。NIM SDK 为 PC 应用提供完善的即时通信功能开发能力,屏蔽其内部复杂细节,对外提供较为简洁的 API 接口,方便您快速集成即时通信功能。
NIM 跨平台 C++ SDK 包含 V1 及 V2 两套 API 版本,V2 系列 API 提供与其他语言一致的 API 接口,V1 为历史版本接口,我们将持续保留 V1 系列 API。
如果您是老用户,可以无缝升级到 >=10.0.0 版本的 SDK,一直使用 V1 系列的 API,为您逐步迁移到 V2 提供稳定保障。
如果您是新用户,我们推荐您直接使用 V2 系列的 API,他们都以 v2 命名空间开头。以下是对接不同版本 API 的接入指南:
方法 | 描述 |
---|---|
v2::V2NIMClient::init | 初始化 SDK |
v2::V2NIMClient::uninit | 反初始化 SDK |
v2::V2NIMClient::updateAppKey | 初始化后更新 AppKey 信息 |
v2::V2NIMLoginService::login | 登录 IM |
v2::V2NIMLoginService::logout | 登出 IM |
v2::V2NIMLoginService::getLoginUser | 获取当前登录用户 |
v2::V2NIMLoginService::getLoginStatus | 获取当前登录状态 |
v2::V2NIMLoginService::getLoginClients | 获取登录客户端列表 |
v2::V2NIMLoginService::kickOffline | 踢掉登录客户端下线 |
v2::V2NIMLoginService::getKickedOfflineDetail | 获取被踢下线原因 |
v2::V2NIMLoginService::getConnectStatus | 获取连接状态 |
v2::V2NIMLoginService::getDataSync | 获取数据同步状态 |
v2::V2NIMLoginService::getChatroomLinkAddress | 获取聊天室 link 地址 |
v2::V2NIMLoginService::setReconnectDelayProvider | 设置获取重连延时回调 |
v2::V2NIMLoginService::addLoginListener | 注册登录监听器 |
v2::V2NIMLoginService::removeLoginListener | 移除登录监听器 |
v2::V2NIMLoginService::addLoginDetailListener | 添加登录详情监听 |
v2::V2NIMLoginService::removeLoginDetailListener | 移除登录详情监听器 |
方法 | 描述 |
---|---|
nim::Client::Init | 初始化 SDK |
nim::Client::Login | 登录 IM |
nim::Client::Logout | 登出 IM |
nim::Client::KickOtherClient | 将使用相同 IM 账号登录的其他设备端踢下线 |
方法 | 描述 |
---|---|
nim::Session::QueryAllRecentSessionAsyncEx | 查询会话列表 |
nim::Session::QuerySessionDataById | 根据给定的 IM 账号(accid)或者群 ID 查询相应会话的信息 |
nim::Session::CancelToStickTopSession | 取消置顶会话列表 |
nim::Session::DeleteAllRecentSession | 删除全部最近会话 |
nim::Session::DeleteRecentSessionEx | 删除最近的某个会话 |
nim::Session::DeleteSessionRoamingMessage | 删除某会话的漫游消息 |
nim::Session::QueryStickTopSessionList | 查询置顶会话列表 |
nim::Session::SetAllUnreadCountZeroAsync | 将所有会话的未读数清零 |
nim::Session::SetMultiUnreadCountZeroAsync | 批量将指定会话的未读数清零 |
nim::Session::SetToStickTopSession | 置顶会话 |
nim::Session::SetUnreadCountZeroAsync | 将某个会话的未读数清零 |
nim::Session::UpdateToStickTopSession | 更新置顶会话列表 |
方法 | 描述 |
---|---|
v2::V2NIMNotificationService::sendCustomNotification | 发送自定义系统通知 |
v2::V2NIMNotificationService::addNotificationListener | 添加通知监听器 |
v2::V2NIMNotificationService::removeNotificationListener | 移除通知监听器 |
方法 | 描述 |
---|---|
nim::SystemMsg::CreateCustomNotificationMsg | 构建自定义系统通知 |
nim::SystemMsg::QueryMsgAsync | 查询本地系统通知 |
nim::SystemMsg::QueryUnreadCount | 查询系统通知未读数 |
nim::SystemMsg::ReadAllAsync | 将全部系统通知设置为已读 |
nim::SystemMsg::SendCustomNotificationMsg | 发送自定义系统通知 |
nim::SystemMsg::SetStatusAsync | 设置系统通知状态 |
方法 | 描述 |
---|---|
v2::V2NIMUserService::getUserList | 根据用户账号列表获取用户资料 |
v2::V2NIMUserService::updateSelfUserProfile | 更新自己的用户资料 |
v2::V2NIMUserService::addUserToBlockList | 添加用户到黑名单中 |
v2::V2NIMUserService::removeUserFromBlockList | 从黑名单中移除用户 |
v2::V2NIMUserService::getBlockList | 获取黑名单列表 |
v2::V2NIMUserService::getUserListFromCloud | 根据用户账号列表从服务器获取用户资料 |
v2::V2NIMUserService::searchUserByOption | 根据关键字搜索用户信息 |
v2::V2NIMUserService::addUserListener | 添加用户资料监听器 |
v2::V2NIMUserService::removeUserListener | 移除用户资料监听器 |
方法 | 描述 |
---|---|
nim::User::GetBlacklist | 获取黑名单列表 |
nim::User::GetMutelist | 获取静音名单列表 |
nim::User::GetUserNameCardOnline | 在线查询指定 IM 账号(accid)的用户名片 |
nim::User::SetBlack | 将用户加入/移出黑名单 |
nim::User::SetMute | 将用户加入/移出静音名单 |
nim::User::UpdateMyUserNameCard | 更新自己的用户名片 |
方法 | 描述 |
---|---|
v2::V2NIMFriendService::addFriend | 添加好友 |
v2::V2NIMFriendService::deleteFriend | 删除好友 |
v2::V2NIMFriendService::acceptAddApplication | 接受好友申请 |
v2::V2NIMFriendService::rejectAddApplication | 拒绝好友申请 |
v2::V2NIMFriendService::setFriendInfo | 设置好友信息 |
v2::V2NIMFriendService::getFriendList | 获取好友列表 |
v2::V2NIMFriendService::getFriendByIds | 根据账号 ID 获取好友信息 |
v2::V2NIMFriendService::checkFriend | 根据账号 ID 检查好友状态 |
v2::V2NIMFriendService::getAddApplicationList | 获取申请添加好友信息列表 |
v2::V2NIMFriendService::getAddApplicationUnreadCount | 获取申请添加好友未读数 |
v2::V2NIMFriendService::setAddApplicationRead | 设置好友申请已读 |
v2::V2NIMFriendService::searchFriendByOption | 根据关键字搜索好友信息 |
v2::V2NIMFriendService::addFriendListener | 添加好友监听器 |
v2::V2NIMFriendService::removeFriendListener | 移除好友监听器 |
方法 | 描述 |
---|---|
nim::Friend::DeleteEx | 删除好友 |
nim::Friend::GetFriendProfile | 获取好友信息 |
nim::Friend::GetList | 增量获取好友列表 |
nim::Friend::Request | 添加好友 |
nim::Friend::Update | 更新好友资料 |
方法 | 描述 |
---|---|
v2::V2NIMStorageService::addCustomStorageScene | 添加自定义存储场景, 需在登录前调用 |
v2::V2NIMStorageService::createUploadFileTask | 创建文件上传任务 |
v2::V2NIMStorageService::uploadFile | 文件上传 |
v2::V2NIMStorageService::cancelUploadFile | 取消文件上传 |
v2::V2NIMStorageService::downloadFile | 下载文件 |
v2::V2NIMStorageService::cancelDownloadFile | 取消下载任务 |
v2::V2NIMStorageService::getStorageSceneList | 查询存储场景列表 |
v2::V2NIMStorageService::shortUrlToLong | 短链接转长链接 |
v2::V2NIMStorageService::downloadAttachment | 下载消息附件 |
v2::V2NIMStorageService::getImageThumbUrl | 获取图片消息中的图片缩略图 |
v2::V2NIMStorageService::getVideoCoverUrl | 获取视频消息中的视频封面 |
方法 | 描述 |
---|---|
nim::NOS::InitConfig | 对上传资源时使用的各场景资源生命周期进行初始化 |
nim::NOS::RegDownloadCb | (全局回调)注册下载回调 |
nim::NOS::RegUploadCb | (全局回调)注册上传回调 |
nim::NOS::RegCustomCustomTokenCb | (全局回调)注册自定义token获取回调 |
nim::NOS::FetchMediaEx | 获取资源 |
nim::NOS::StopFetchMedia | 停止获取资源(目前仅对文件消息类型有效) |
nim::NOS::UploadResourceEx2 | 上传资源 |
nim::NOS::StopUploadResourceEx | 停止上传资源 |
nim::NOS::DownloadResourceEx | 下载资源 |
nim::NOS::StopDownloadResourceEx | 停止下载资源 |
nim::NOS::SafeURLToOriginURL | 安全链接转换为原始链接 |
nim::NOS::UnregNosCb | (全局回调)注销所有回调 |
nim::NOS::SetSupportQuickTrans | 设置是否支持快传 |
方法 | 描述 |
---|---|
v2::V2NIMSignallingService::call | 直接呼叫对方加入房间 |
v2::V2NIMSignallingService::callSetup | 呼叫建立,包括加入信令频道房间,同时接受对方呼叫 |
v2::V2NIMSignallingService::createRoom | 创建信令房间 |
v2::V2NIMSignallingService::closeRoom | 关闭信令房间接口 |
v2::V2NIMSignallingService::joinRoom | 加入信令房间接口 |
v2::V2NIMSignallingService::leaveRoom | 离开信令房间接口 |
v2::V2NIMSignallingService::invite | 邀请成员加入信令房间接口 |
v2::V2NIMSignallingService::cancelInvite | 取消之前的邀请成员加入信令房间接口 |
v2::V2NIMSignallingService::rejectInvite | 拒绝别人的邀请加入信令房间请求 |
v2::V2NIMSignallingService::acceptInvite | 接受别人的邀请加入信令房间请求 |
v2::V2NIMSignallingService::sendControl | 发送自定义控制指令,可以实现自定义相关的业务逻辑 |
v2::V2NIMSignallingService::getRoomInfoByChannelName | 根据频道名称查询频道房间信息 |
v2::V2NIMSignallingService::addSignallingListener | 添加信令监听器 |
v2::V2NIMSignallingService::removeSignallingListener | 移除信令监听器 |
方法 | 描述 |
---|---|
nim::Signaling::RegOnlineNotifyCb | 注册独立信令的在线通知回调接口 |
nim::Signaling::RegMutilClientSyncNotifyCb | 注册独立信令的多端同步通知回调接口 |
nim::Signaling::RegOfflineNotifyCb | 注册独立信令的离线通知回调接口 |
nim::Signaling::RegChannelsSyncCb | 注册独立信令的频道列表同步回调接口 |
nim::Signaling::RegMembersSyncCb | 注册独立信令的频道成员变更同步回调接口 |
nim::Signaling::SignalingCreate | 创建频道 |
nim::Signaling::SignalingClose | 关闭销毁频道 |
nim::Signaling::Join | 加入频道接口 |
nim::Signaling::Leave | 离开频道接口 |
nim::Signaling::QueryChannelInfo | 查询频道接口 |
nim::Signaling::Call | 呼叫接口 |
nim::Signaling::CallEx | 呼叫接口 |
nim::Signaling::JoinAndAccept | 加入并接受接口 |
nim::Signaling::Invite | 邀请接口 |
nim::Signaling::CancelInvite | 取消邀请接口 |
nim::Signaling::Reject | 拒绝邀请接口 |
nim::Signaling::Accept | 接受邀请接口 |
nim::Signaling::Control | 用户自定义控制指令接口 |
方法 | 描述 |
---|---|
nim::SubscribeEvent::RegPushEventCb | (全局回调)统一注册接收订阅的事件的回调函数 |
nim::SubscribeEvent::RegBatchPushEventCb | (全局回调)统一注册批量接收订阅的事件的回调函数 |
nim::SubscribeEvent::Publish | 发布事件 |
nim::SubscribeEvent::Subscribe | 订阅事件 |
nim::SubscribeEvent::UnSubscribe | 按账号取消指定事件的订阅关系 |
nim::SubscribeEvent::BatchUnSubscribe | 取消指定事件的全部订阅关系 |
nim::SubscribeEvent::QuerySubscribe | 按账号查询指定事件订阅关系 |
方法 | 描述 |
---|---|
v2::V2NIMAIService::getAIUserList | 获取 AI 数字人列表 |
v2::V2NIMAIService::proxyAIModelCall | AI 数字人请求代理接口 |
v2::V2NIMAIService::addAIListener | 添加 AI 模块的监听器 |
v2::V2NIMAIService::removeAIListener | 移除 AI 模块的状态监听器 |
方法 | 描述 |
---|---|
nim::QChat::Init | 圈组模块初始化(SDK 初始化时调用一次) |
nim::QChat::Login | 登录圈组 |
nim::QChat::Logout | 登出圈组 |
nim::QChat::KickOtherClients | 将使用相同 IM 账号(accid)登录圈组的其他设备端踢下线 |
方法 | 描述 |
---|---|
nim::Channel::ChannelMemberSearch | 根据关键字搜索频道成员列表 |
nim::Channel::ChannelSearchByPage | (分页)根据关键字搜索频道成员列表 |
nim::Channel::CreateChannel | 创建频道 |
nim::Channel::UpdateChannel | 更新频道 |
nim::Channel::DeleteChannel | 删除频道 |
nim::Channel::GetChannels | 查询频道列表 |
nim::Channel::GetChannelsByPage | 分页查询频道列表 |
nim::Channel::GetMembersByPage | 分页查询频道成员列表 |
nim::Channel::UpdateWhiteBlackMembers | 更新频道黑白名单成员 |
nim::Channel::GetWhiteBlackMembersPage | 分页查询频道黑白名单列表 |
nim::Channel::UpdateWhiteBlackRole | 更新频道黑白名单身份组 |
nim::Channel::GetWhiteBlackRolesPage | 分页查询频道黑白名单身份组列表 |
nim::Channel::QueryUnreadInfo | 查询频道的消息未读数 |
nim::Channel::Subscribe | 订阅频道未读状态、未读数或未读消息、事件 |
nim::Channel::SubscribeAsVisitor | 以游客身份订阅频道的消息未读状态、未读数或未读消息、事件 |
方法 | 描述 |
---|---|
nim::Role::CreateServerRole | 创建服务器身份组 |
nim::Role::UpdateServerRole | 更新服务器身份组 |
nim::Role::DeleteServerRole | 删除服务器身份组 |
nim::Role::AddMembersToServerRole | 将部分成员添加至某个服务器身份组 |
nim::Role::RemoveMembersFromServerRole | 从服务器身份组中移除部分成员 |
nim::Role::AddChannelRole | 创建频道身份组 |
nim::Role::UpdateChannelRole | 更新频道身份组 |
nim::Role::AddMemberRole | 创建用户定制权限,即在频道中添加针对指定成员的特殊权限配置 |
nim::Role::UpdateMemberRole | 更新用户定制权限 |
nim::Role::RemoveMemberRole | 删除用户定制权限 |
nim::Role::CheckPermission | 查询当前登录用户是否拥有特定权限 |
nim::Role::CheckPermissions | 批量查询当前登录用户是否拥有特定权限 |
nim::Role::GetChannelRoles | 查询频道身份组 |
方法 | 描述 |
---|---|
nim::Message::Send | 发送消息 |
nim::Message::Update | 更新消息 |
nim::Message::Revoke | 撤回消息 |
nim::Message::Delete | 删除消息。删除未读消息将影响未读数 |
nim::Message::AreMentionedMeMessages | 查询消息是否 @ 当前用户 |
nim::Message::GetLastMessages | 获取频道最后一条消息 |
nim::Message::GetMentionedMeMessages | 查询未读消息中 @ 当前用户的消息 |
nim::Message::GetMessages | 查询历史消息 |
nim::Message::GetMessagesCache | 查询本地消息历史缓存 |
nim::Message::Reply | 回复指定消息(Thread 聊天场景) |
nim::Message::GetThreadMessages | 分页获取 Thread 的回复消息列表 |
nim::Message::AddQuickComment | 针对某条消息添加快捷评论(Reaction) |
nim::Message::MarkRead | 将消息标记为已读 |
nim::Message::SearchMsgByPage | 分页搜索消息 |
方法 | 描述 |
---|---|
nim::SystemNotification::Send | 发送圈组的自定义系统通知 |
nim::SystemNotification::SendTypingEvent | 发送正在输入事件 |
nim::SystemNotification::Update | 更新自定义系统通知 |
nim::SystemNotification::MarkSystemNotificationsRead | 标记系统通知消息已读 |