IM 即时通讯(增强版)
SDK 集成概述
更新时间: 2023/02/02 10:57:01
NIM Web 增强版 SDK (以下简称为“增强版”)为 NIM Web SDK (以下简称为“原版”)的重构版本。增强版继承了原版的特性,提供完善的即时通讯功能开发框架和简洁的 API 接口,方便您快速将即时通讯功能集成到您的 PC/移动 Web 应用及 NodeJS、微信小程序等跨平台应用。
相较于原版,增强版做了如下改进:
- 使用 TypeScript 重构,API 出入参数定义更加完善。
- 使用 Promise API 替代回调地狱(callback hell)。
- 支持更多开发环境:现支持 IE v11.0.0 及以上版本和 chrome v4.0.0 及以上版本等浏览器,以及微信小程序、支付宝小程序、uniapp等跨平台开发环境。
- 结构更精简。包体积降至原版 SDK 的 40%。
安装 SDK
SDK 以 npm 包的形式提供,请前往 nim-web-sdk-ng 获取 npm 包。
通过以下命令安装 SDK。
npm install nim-web-sdk-ng@latest
SDK 结构如下:
dist/
├── CHATROOM_BROWSER_SDK.js 聊天室浏览器适配版 UMD 格式
├── CHATROOM_MINIAPP_SDK.js 聊天室小程序适配版 UMD 格式
├── CHATROOM_UNIAPP_SDK.js 聊天室 UNIAPP 适配版 UMD 格式
├── NIM_BROWSER_SDK.js IM 浏览器适配版 UMD 格式
├── NIM_MINIAPP_SDK.js IM 小程序适配版 UMD 格式
├── NIM_UNIAPP_SDK.js IM UNIAPP 适配版 UMD 格式
├── QCHAT_BROWSER_SDK.js 圈组浏览器适配版 UMD 格式
├── esm
│ ├── adapters.d.ts
│ ├── index.d.ts
│ ├── index.js ESM 模式,汇总各模块的,ES Module 格式
这里的小程序适配版,实际指两种小程序:微信和支付宝。
ESM 模式的 SDK,导出了 IM、聊天室、圈组三个 SDK,以及适配器,对体积有比较严格的需求的建议使用这个模式。
引入 SDK
请根据您的实际开发环境和需求导入相应的 SDK 文件并初始化对应的 SDK 实例。
开发需求 |
环境 |
SDK 导入 |
初始化方式 |
---|---|---|---|
IM 功能 | 浏览器 | import NIMSDK from 'nim-web-sdk-ng/dist/NIM_BROWSER_SDK' |
const nim = new NIMSDK({...}) |
IM 功能 | uniapp | import NIMSDK from 'nim-web-sdk-ng/dist/NIM_UNIAPP_SDK' |
const nim = new NIMSDK({...}) |
IM 功能 | 微信/支付宝 | import NIMSDK from 'nim-web-sdk-ng/dist/NIM_MINIAPP_SDK' |
const nim = new NIMSDK({...}) |
聊天室功能 | 浏览器 | import ChatroomSDK from 'nim-web-sdk-ng/dist/CHATROOM_BROWSER_SDK' |
const chatroom = new ChatroomSDK({...}) |
聊天室功能 | uniapp | import ChatroomSDK from 'nim-web-sdk-ng/dist/CHATROOM_UNIAPP_SDK' |
const chatroom = new ChatroomSDK({...}) |
聊天室功能 | 微信/支付宝 | import ChatroomSDK from 'nim-web-sdk-ng/dist/CHATROOM_MINIAPP_SDK' |
const chatroom = new ChatroomSDK({...}) |
圈组功能 | 浏览器 | import QChatSDK from 'nim-web-sdk-ng/dist/QCHAT_BROWSER_SDK' |
const qchat = new QChatSDK({...}) |
- uniapp 和各种小程序并不支持 TS,目前仅支持在浏览器环境导出 TS 声明。
- SDK 所提供的小程序相关能力的接口使用方式,基本与浏览器环境下调用方式相同。但根据小程序与浏览器的差异,SDK 做了相关适配,主要调用方式的差异体现在文件上传、WebSocket 和网络请求限制等方面。具体请参见小程序环境集成声明。
ESM 形式引入
单独引入上述 SDK,代码总体积会比较大,如果开发者对体积大小有特别的需求,可以选用 ESM 形式引入。
- SDK 的版本需要 0.6.1 及以上。
- ESM 模式的 SDK,导出 IM、聊天室、圈组三个 SDK。
- 需要开发者自行注册模块和适配器。参见
node_modules
中关于esm
模块的 TS 定义来获取模块和适配器种类。 - 对于不需要的模块,建议开发者最后在工程中进行打包(tree-shaking)。
使用 ESM 形式引入的示例代码如下:
import { NIM, browserAdapters, MsgService, SessionService } from 'nim-web-sdk-ng/dist/esm'
// ESM 模式,IM 依赖的能力需要自行注册,以便于不用的模块最后能被 tree-shaking 掉。
NIM.setAdapters(browserAppAdapters)
NIM.registerService(MsgService, 'msg')
NIM.registerService(SessionService, 'session')
此文档是否对你有帮助?
有帮助
我要吐槽