nim-web-sdk-ng
v10.11.5
Published
Yunxin IM SDK next generation
Readme
网易云信即时通讯 IM Elite SDK,为 web sdk 的下一代版本,提供完善的即时通信功能开发框架,屏蔽其内部复杂细节,对外提供较为简洁的 API 接口,方便第三方应用快速集成即时通信功能。
IM Elite SDK 分为 V1 和 V2 两个版本。V2 对 V1 的 API 接口做了大幅调整,并与其它客户端对齐。其中 V1 版本号 < 1,V2 版本号 >= 10。
安装
如果你是新用户,推荐使用 V2 API 的 SDK,安装方式为:
npm install nim-web-sdk-ng@">=10"如果你是现有 V1 增强版用户,可使用下面命令安装 SDK。或者使用固定版本号安装
npm install nim-web-sdk-ng@"<1"IM V2
sdk 选择
sdk 默认提供以下几种形式。其中 sdk 默认入口为 dist/v2/NIM_BROWSER_SDK.js。 注意,v2 暂未提供 QCHAT SDK。v2 IM SDK 接口兼容 v1 IM SDK。所以 v1 文件夹中没有构建 IM SDK。
dist/
|── v2
├── NIM_BROWSER_SDK.js v2 IM 浏览器适配版 UMD 格式
├── NIM_MINIAPP_SDK.js v2 IM 小程序适配版 UMD 格式
├── NIM_UNIAPP_SDK.js v2 IM UNIAPP 适配版 UMD 格式
├── NIM_RN_SDK.js RN 适配已经迁移到新库 @yxim/nim-rn-sdk-ng, 本产物废弃
├── CHATROOM_BROWSER_SDK.js v2 聊天室浏览器适配版 UMD 格式
├── CHATROOM_MINIAPP_SDK.js v2 聊天室小程序适配版 UMD 格式
├── CHATROOM_UNIAPP_SDK.js v2 聊天室 UNIAPP 适配版 UMD 格式
├── CHATROOM_RN_SDK.js RN 适配已经迁移到新库 @yxim/nim-rn-sdk-ng, 本产物废弃
|── v1
├── CHATROOM_BROWSER_SDK.js v1 聊天室浏览器适配版 UMD 格式
├── CHATROOM_MINIAPP_SDK.js v1 聊天室小程序适配版 UMD 格式
├── CHATROOM_UNIAPP_SDK.js v1 聊天室 UNIAPP 适配版 UMD 格式
├── QCHAT_BROWSER_SDK.js v1 圈组浏览器适配版 UMD 格式
├── QCHAT_UNIAPP_SDK.js v1 圈组浏览器适配版 UMD 格式React Native 环境
自 v10.11.5 起见 @yxim/nim-rn-sdk-ng 库, 已不再本仓库维护.
npm install @yxim/nim-rn-sdk-ngNode.js 环境
见 @yxim/nim-bot 库, 已不再本仓库维护.
支持的服务模块
| 服务模块 | 描述 |
| ------------------------------- | -------------------------------- |
| V2NIMLoginService | 登录服务 |
| V2NIMMessageService | 消息服务(发送/接收消息) |
| V2NIMMessageLogUtil | 消息日志工具(查询历史消息) |
| V2NIMMessageExtendUtil | 消息扩展工具(快捷评论、PIN 等) |
| V2NIMLocalConversationService | 本地会话服务 |
| V2NIMConversationService | 会话服务 |
| V2NIMConversationGroupService | 会话分组服务 |
| V2NIMUserService | 用户服务 |
| V2NIMFriendService | 好友服务 |
| V2NIMTeamService | 群组服务 |
| V2NIMNotificationService | 通知服务 |
| V2NIMStorageService | 存储服务(文件上传下载) |
| V2NIMSettingService | 设置服务 |
| V2NIMSyncService | 同步服务 |
| V2NIMAIService | AI 服务 |
| V2NIMSignallingService | 信令服务 |
| V2NIMPassthroughService | 透传服务 |
基础示例
import NIM from 'nim-web-sdk-ng'
// 创建实例
const nim = NIM.getInstance({
appkey: 'YOUR_APPKEY',
account: 'YOUR_ACCOUNT',
token: 'YOUR_TOKEN',
debugLevel: 'debug',
apiVersion: 'v2'
})
// 监听登录状态
nim.V2NIMLoginService.on('onLoginStatus', (status) => {
console.log('登录状态:', status)
})
nim.V2NIMLoginService.on('onConnectStatus', (status) => {
console.log('连接状态:', status)
})
// 登录
async function main() {
try {
await nim.V2NIMLoginService.login('YOUR_ACCOUNT', 'YOUR_TOKEN')
console.log('登录成功')
// 发送文本消息
const message = nim.V2NIMMessageCreator.createTextMessage('Hello from Node.js!')
const conversationId = nim.V2NIMConversationIdUtil.p2pConversationId('TARGET_ACCOUNT')
await nim.V2NIMMessageService.sendMessage(message, conversationId)
console.log('消息发送成功')
} catch (err) {
console.error('操作失败:', err)
}
}
main()