完整的 NIM SDK 由 NIMInterface, ChatroomServiceInterface 组成。
SDK
的入口,负责创建实例各模块公用的常量, 对应的枚举定义如下
模块所包含的工具类如下
模块所包含的事件回调如下
V2NIM 是 SDK 入口类。通过该类创建实例。
方法 | 功能描述 |
---|---|
V2NIM.getInstance | 单例模式获取实例 |
V2NIM.registerService | 注册模块. 使用 dist/esm 产物使用 |
V2NIM.sdkVersion | SDK 版本号-数字格式 |
V2NIM.sdkVersionFormat | SDK 版本号-字符串格式 |
NIM SDK 默认导出的是 UMD 格式的产物, 如果开发者对包体积有更严格的要求(通常是小程序), 则可以使用 ESM 引入, 辅配 webpack 做 tree-shaking 来进一步降低 NIM SDK 产物体积.
ESM 产物路径在 nim-web-sdk-ng/dist/esm/nim.js
中. 截至 v10.5.0, ESM 产物导出了所有 V2NIM 模块, 共有 550kb, 只引入消息与会话有关的模块约为 400kb 上下.
完整示例见
需要手动指明环境适配器
需要调用 registerService
注册模块,以及环境变量. 可供注册的模块如下
某些模块包含工具类, 只需要引入对应模块服务, 就能直接使用该工具类, 关系如下
下面是NIMInterfaceStatic.getInstance的初始化参数。这里只例举部分回调函数,完整初始化参数见 NIMInitializeOptions,以及NIMOtherOptions
注意,初始化有两个参数,调用方式为: NIM.getInstance(param1, param2)
。param1 为 NIMInitializeOptions, param2 为 NIMOtherOptions
const nim = V2NIM.getInstance(
/**
* param1: NIMInitializeOptions
*/
{
appkey: 'YOUR_APPKEY',
debugLevel: 'debug',
apiVersion: 'v2'
},
/**
* param2: NIMOtherOptions
*/
{
/**
* 登录模块的配置初始化设置
*/
V2NIMLoginServiceConfig: {
lbsUrls: ['https://lbs.netease.im/lbs/webconf.jsp'],
linkUrl: 'weblink.netease.im:443'
}
}
)
提供最为基础的初始化参数。该参数的完整属性列表请参考NIMInitializeOptions
属性 | 功能描述 |
---|---|
NIMInitializeOptions.appkey | 应用 appkey |
NIMInitializeOptions.debugLevel | 日志分级 |
NIMInitializeOptions.apiVersion | API 版本("v1" 或者 "v2") |
提供一些扩展初始化参数。该参数的完整属性列表请参考NIMOtherOptions。
属性 | 功能描述 |
---|---|
NIMOtherOptions.V1NIMLoginServiceConfig | v1 登录模块的配置 |
NIMOtherOptions.V2NIMLoginServiceConfig | v2 登录模块的配置 |
NIMOtherOptions.cloudStorageConfig | 上传相关的配置 |
NIMOtherOptions.privateConf | 私有化配置 |
NIMOtherOptions.loggerConfig | 日志代理配置 |
NIMOtherOptions.reporterConfig | 数据上报配置 |
登录模块。调用示例: nim.V2NIMLoginService.login
。完整的 API 请参见 V2NIMLoginService
方法 | 功能描述 |
---|---|
V2NIMLoginService.login | 登录 IM |
V2NIMLoginService.logout | 登出 IM |
V2NIMLoginService.kickOffline | 踢出当前用户从其它端登录上来的连接 |
V2NIMLoginService.getChatroomLinkAddress | 获取聊天室 link 地址 |
V2NIMLoginService.getLoginUser | 获取当前登录的用户账户 ID |
V2NIMLoginService.getLoginStatus | 获取当前登录状态 |
V2NIMLoginService.getConnectStatus | 获取连接状态 |
V2NIMLoginService.getLoginClients | 获取本账号的多端登录的其他端的信息 |
V2NIMLoginService.getKickedOfflineDetail | 获取自己被踢下线的原因 |
V2NIMLoginService.setReconnectDelayProvider | 设置断网重连的等待间隔函数 |
V2NIMLoginService.setAppVisibility | 通知 SDK 应用程序是否可见 |
事件接口调用示例: nim.V2NIMLoginService.on()
。完整的请参见 V2NIMLoginListener
事件名称 | 功能描述 |
---|---|
V2NIMLoginListener.onLoginStatus | 登录状态变更通知 |
V2NIMLoginListener.onLoginFailed | 登录的鉴权失败通知 |
V2NIMLoginListener.onKickedOffline | 被踢下线通知 |
V2NIMLoginListener.onLoginClientChanged | 多端登陆通知 |
V2NIMLoginListener.onConnectStatus | 连接状态变更 |
V2NIMLoginListener.onDisconnected | 长连接断开 |
V2NIMLoginListener.onConnectFailed | 连接建立失败 |
V2NIMLoginListener.onDataSync | 数据同步完成的通知 |
本地会话模块。调用示例: nim.V2NIMLocalConversationService.getConversationList
。完整的 API 请参见 V2NIMLocalConversationService
事件接口调用示例: nim.V2NIMLocalConversationService.on()
。完整的请参见 V2NIMLocalConversationListener
会话模块。调用示例: nim.V2NIMConversationService.getConversationList
。完整的 API 请参见 V2NIMConversationService
事件接口调用示例: nim.V2NIMConversationService.on()
。完整的请参见 V2NIMConversationListener
事件名称 | 功能描述 |
---|---|
V2NIMConversationListener.onSyncStarted | 会话模块的数据同步开始 |
V2NIMConversationListener.onSyncFinished | 会话模块的数据同步结束 |
V2NIMConversationListener.onSyncFailed | 会话模块的数据同步失败 |
V2NIMConversationListener.onConversationCreated | 会话被创建 |
V2NIMConversationListener.onConversationDeleted | 会话被删除 |
V2NIMConversationListener.onConversationChanged | 会话有更新 |
V2NIMConversationListener.onTotalUnreadCountChanged | 总未读数发生变化 |
V2NIMConversationListener.onUnreadCountChangedByFilter | 指定过滤条件的未读数发生变化 |
会话分组模块。调用示例: nim.V2NIMConversationGroupService.createConversationGroup
。完整的 API 请参见 V2NIMConversationGroupService
事件接口调用示例: nim.V2NIMConversationGroupService.on()
。完整的请参见 V2NIMConversationGroupListener
消息模块服务。调用示例: nim.V2NIMMessageService.sendMessage
。完整的 API 请参见 V2NIMMessageService
事件接口调用示例: nim.V2NIMMessageService.on()
。完整的请参见 V2NIMMessageListener
事件名称 | 功能描述 |
---|---|
V2NIMMessageListener.onSendMessage | 发送消息时,消息的状态变化回调 |
V2NIMMessageListener.onReceiveMessages | 收到新消息 |
V2NIMMessageListener.onReceiveP2PMessageReadReceipts | 收到点对点消息的已读回执 |
V2NIMMessageListener.onReceiveTeamMessageReadReceipts | 收到高级群消息的已读回执 |
V2NIMMessageListener.onMessageRevokeNotifications | 收到消息撤回回调 |
V2NIMMessageListener.onMessageDeletedNotifications | 收到消息被删除通知 |
V2NIMMessageListener.onClearHistoryNotifications | 清空会话历史消息通知 |
V2NIMMessageListener.onMessagePinNotification | 收到消息 pin 状态更新 |
V2NIMMessageListener.onMessageQuickCommentNotification | 收到消息快捷评论更新 |
群组模块服务。调用示例: nim.V2NIMTeamService.createTeam
。完整的 API 请参见 V2NIMTeamService
事件接口调用示例: nim.V2NIMTeamService.on()
。完整的请参见 V2NIMTeamListener
事件名称 | 功能描述 |
---|---|
V2NIMTeamListener.onSyncStarted | 群组信息同步开始回调 |
V2NIMTeamListener.onSyncFinished | 群组信息同步结束回调 |
V2NIMTeamListener.onSyncFailed | 群组信息数据同步失败 |
V2NIMTeamListener.onTeamCreated | 群组创建回调 |
V2NIMTeamListener.onTeamDismissed | 群组解散 |
V2NIMTeamListener.onTeamJoined | (自己)加入某群 |
V2NIMTeamListener.onTeamLeft | 退出群组 |
V2NIMTeamListener.onTeamInfoUpdated | 群组信息更新 |
V2NIMTeamListener.onTeamMemberJoined | 群组成员加入 |
V2NIMTeamListener.onTeamMemberKicked | 群组成员被踢 |
V2NIMTeamListener.onTeamMemberLeft | 群组成员退出 |
V2NIMTeamListener.onTeamMemberInfoUpdated | 群组成员信息变更 |
V2NIMTeamListener.onReceiveTeamJoinActionInfo | 群组申请动作 |
用户模块服务。调用示例: nim.V2NIMUserService.createTeam
。完整的 API 请参见 V2NIMUserService
方法 | 功能描述 |
---|---|
V2NIMUserService.getUserList | 根据用户账号列表获取用户资料 |
V2NIMUserService.getUserListFromCloud | 根据用户账号列表获取用户资料 |
V2NIMUserService.updateSelfUserProfile | 更新自己的用户资料 |
V2NIMUserService.addUserToBlockList | 添加用户到黑名单中 |
V2NIMUserService.removeUserFromBlockList | 从黑名单中移除用户 |
V2NIMUserService.getBlockList | 获取黑名单列表 |
V2NIMUserService.checkBlock | 检查用户是否在黑名单中 |
V2NIMUserService.searchUserByOption | 根据搜索条件搜索用户 |
事件接口调用示例: nim.V2NIMUserService.on()
。完整的请参见 V2NIMUserListener
事件名称 | 功能描述 |
---|---|
V2NIMUserListener.onUserProfileChanged | 收到新消息 |
V2NIMUserListener.onBlockListAdded | 黑名单添加通知 |
V2NIMUserListener.onBlockListRemoved | 黑名单删除通知 |
好友模块服务。调用示例: nim.V2NIMFriendService.addFriend
。完整的 API 请参见 V2NIMFriendService
方法 | 功能描述 |
---|---|
V2NIMFriendService.addFriend | 添加/申请好友 |
V2NIMFriendService.deleteFriend | 删除好友 |
V2NIMFriendService.acceptAddApplication | 接受好友申请 |
V2NIMFriendService.rejectAddApplication | 添加/申请好友 |
V2NIMFriendService.setFriendInfo | 设置好友信息 |
V2NIMFriendService.getFriendList | 获取好友列表 |
V2NIMFriendService.checkFriend | 根据账号 ID 检查好友状态 |
V2NIMFriendService.getAddApplicationList | 获取申请添加好友列表通知 |
V2NIMFriendService.getAddApplicationUnreadCount | 获取未读好友申请通知数量 |
V2NIMFriendService.setAddApplicationRead | 设置所有好友申请已读 |
V2NIMFriendService.setAddApplicationReadEx | 设置好友申请已读 |
V2NIMFriendService.searchFriendByOption | 根据搜索条件搜索好友 |
事件接口调用示例: nim.V2NIMFriendService.on()
。完整的请参见 V2NIMFriendListener
事件名称 | 功能描述 |
---|---|
V2NIMFriendListener.onFriendAdded | 已添加好友 |
V2NIMFriendListener.onFriendDeleted | 已删除好友 |
V2NIMFriendListener.onFriendAddApplication | 收到好友申请 |
V2NIMFriendListener.onFriendAddRejected | 好友申请被拒绝的通知 |
V2NIMFriendListener.onFriendInfoChanged | 好友信息更新 |
设置模块服务。调用示例: nim.V2NIMSettingService.getConversationMuteStatus
。完整的 API 请参见 V2NIMSettingService
方法 | 功能描述 |
---|---|
V2NIMSettingService.getConversationMuteStatus | 获取会话消息免打扰状态 |
V2NIMSettingService.setTeamMessageMuteMode | 设置群消息免打扰模式 |
V2NIMSettingService.getTeamMessageMuteMode | 获取群消息免打扰模式 |
V2NIMSettingService.setP2PMessageMuteMode | 设置点对点消息免打扰模式 |
V2NIMSettingService.getP2PMessageMuteMode | 获取用户消息免打扰模式 |
V2NIMSettingService.getP2PMessageMuteList | 获取点对点消息免打扰列表 |
V2NIMSettingService.setAppBackground | 设置应用前后台状态 |
V2NIMSettingService.setOfflinePushConfig | 设置离线推送参数 |
V2NIMSettingService.setPushMobileOnDesktopOnline | 设置当桌面端在线时,移动端是否需要推送 |
V2NIMSettingService.getPushMobileOnDesktopOnline | 获取当桌面端在线时,移动端是否需要推送配置 |
事件接口调用示例: nim.V2NIMSettingService.on()
。完整的请参见 V2NIMSettingListener
事件名称 | 功能描述 |
---|---|
V2NIMSettingListener.onTeamMessageMuteModeChanged | 群消息免打扰模式变更 |
V2NIMSettingListener.onP2PMessageMuteModeChanged | 点对点消息免打扰模式变更 |
V2NIMSettingListener.onPushMobileOnDesktopOnline | ”当桌面端在线时,移动端是否需要推送“的状态回调 |
云存储模块服务。调用示例: nim.V2NIMStorageService.addCustomStorageScene
。完整的 API 请参见 V2NIMStorageService
方法 | 功能描述 |
---|---|
V2NIMStorageService.addCustomStorageScene | 设置自定义场景 |
V2NIMStorageService.getStorageSceneList | 查询存储场景列表 |
V2NIMStorageService.createUploadFileTask | 创建文件上传任务 |
V2NIMStorageService.uploadFile | 上传文件 |
V2NIMStorageService.cancelUploadFile | 取消文件上传 |
V2NIMStorageService.shortUrlToLong | 短链转长链 |
V2NIMStorageService.getImageThumbUrl | 获取图片缩略图 URL |
V2NIMStorageService.getVideoCoverUrl | 获取视频封面 URL |
通知模块服务: nim.V2NIMNotificationService.sendCustomNotification
。完整的 API 请参见 V2NIMNotificationService
方法 | 功能描述 |
---|---|
V2NIMNotificationService.sendCustomNotification | 发送自定义通知 |
事件接口调用示例: nim.V2NIMNotificationService.on()
。完整的请参见 V2NIMNotificationListener
事件名称 | 功能描述 |
---|---|
V2NIMNotificationListener.onReceiveCustomNotifications | 收到自定义通知 |
V2NIMNotificationListener.onReceiveBroadcastNotifications | 收到广播通知 |
AI 数字人模块服务。调用示例: nim.V2NIMAIService.getAIUserList
。完整的 API 请参见 V2NIMAIService
方法 | 功能描述 |
---|---|
V2NIMAIService.getAIUserList | 数字人拉取接口 |
V2NIMAIService.proxyAIModelCall | AI 数字人请求代理接口 |
V2NIMAIService.stopAIModelStreamCall | 停止 AI 数字人流式输出 |
事件接口调用示例: nim.V2NIMAIService.on()
。完整的请参见 V2NIMAIListener
方法 | 功能描述 |
---|---|
V2NIMAIListener.onProxyAIModelCall | AI 透传接口的响应的回调 |
V2NIMAIListener.onProxyAIModelStreamCall | AI 透传接口的流式回复的回调 |
订阅模块服务。调用示例: nim.V2NIMSubscriptionService.call
。完整的 API 请参见 V2NIMSubscriptionService
方法 | 功能描述 |
---|---|
V2NIMSubscriptionService.subscribeUserStatus | 订阅用户状态 |
V2NIMSubscriptionService.unsubscribeUserStatus | 取消订阅用户状态 |
V2NIMSubscriptionService.publishCustomUserStatus | 发布用户自定义状态 |
V2NIMSubscriptionService.queryUserStatusSubscriptions | 查询用户状态订阅关系 |
事件接口调用示例: nim.V2NIMSubscriptionService.on()
。完整的请参见 V2NIMSubscribeListener
方法 | 功能描述 |
---|---|
V2NIMSubscribeListener.onUserStatusChanged | 其它用户状态变更,包括在线状态,和自定义状态 |
信令模块服务。调用示例: nim.V2NIMSignallingService.call
。完整的 API 请参见 V2NIMSignallingService
方法 | 功能描述 |
---|---|
V2NIMSignallingService.call | 直接呼叫对方加入房间 |
V2NIMSignallingService.callSetup | 呼叫建立 |
V2NIMSignallingService.createRoom | 创建信令房间 |
V2NIMSignallingService.closeRoom | 关闭信令房间接口 |
V2NIMSignallingService.joinRoom | 加入信令房间接口 |
V2NIMSignallingService.leaveRoom | 离开信令房间接口 |
V2NIMSignallingService.invite | 邀请成员加入信令房间接口 |
V2NIMSignallingService.cancelInvite | 取消之前的邀请成员加入信令房间接口 |
V2NIMSignallingService.rejectInvite | 拒绝别人的邀请加入信令房间请求 |
V2NIMSignallingService.acceptInvite | 接受别人的邀请加入信令房间请求 |
V2NIMSignallingService.sendControl | 发送自定义控制指令 |
V2NIMSignallingService.getRoomInfoByChannelName | 根据频道名称查询频道房间信息 |
事件接口调用示例: nim.V2NIMSignallingService.on()
。完整的请参见 V2NIMSignallingListener
方法 | 功能描述 |
---|---|
V2NIMSignallingListener.onOnlineEvent | 在线事件回调 |
V2NIMSignallingListener.onOfflineEvent | 离线事件回调 |
V2NIMSignallingListener.onMultiClientEvent | 多端事件操作同步回调 |
V2NIMSignallingListener.onSyncRoomInfoList | 同步到的当前未退出的信令频道列表 |
服务代理相关 API。调用示例: nim.V2NIMPassthroughService.httpProxy
。完整的 API 请参见 V2NIMPassthroughService
方法 | 功能描述 |
---|---|
V2NIMPassthroughService.httpProxy | http 服务代理 |
事件接口调用示例: nim.V2NIMPassthroughService.on()
。完整的请参见 V2NIMPassthroughListener
方法 | 功能描述 |
---|---|
V2NIMPassthroughListener.onProxyNotify | 服务代理的通知 |
会话 id 工具类. 调用示例: nim.V2NIMConversationIdUtil.p2pConversationId
。完整的 API 请参见 V2NIMConversationIdUtil
方法 | 功能描述 |
---|---|
V2NIMConversationIdUtil.p2pConversationId | 构造点对点会话 ID |
V2NIMConversationIdUtil.teamConversationId | 构造群会话 ID |
V2NIMConversationIdUtil.superTeamConversationId | 构造超大群会话 ID |
V2NIMConversationIdUtil.parseConversationType | 解析会话类型 |
V2NIMConversationIdUtil.parseConversationTargetId | 解析会话目标账号 |
消息构造工具类. 调用示例: nim.V2NIMMessageCreator.createTextMessage
。完整的 API 请参见 V2NIMMessageCreator
消息附件构造工具类. 调用示例: nim.V2NIMMessageAttachmentCreator.createLocationMessageAttachment
。完整的 API 请参见 V2NIMMessageAttachmentCreator
方法 | 功能描述 |
---|---|
V2NIMMessageAttachmentCreator.createLocationMessageAttachment | 构造地理位置消息的附件 |
V2NIMMessageAttachmentCreator.createCustomMessageAttachment | 构造自定义消息的附件 |
消息转化工具类. 调用示例: nim.V2NIMMessageConverter.messageSerialization
。完整的 API 请参见 V2NIMMessageConverter
方法 | 功能描述 |
---|---|
V2NIMMessageConverter.messageSerialization | 将 V2 消息序列化 |
V2NIMMessageConverter.messageDeserialization | 将 序列化消息反转成 V2 消息 |
本地消息反垃圾工具类。调用示例: nim.V2NIMClientAntispamUtil.checkTextAntispam
。完整的 API 请参见 V2NIMClientAntispamUtil
方法 | 功能描述 |
---|---|
V2NIMClientAntispamUtil.checkTextAntispam | 对输入的文本进行本地反垃圾检查 |