9.16.1 • Published 28 days ago
@yxim/nim-web-sdk v9.16.1
网易云信即时通讯 Web SDK,提供完善的即时通信功能开发框架,屏蔽其内部复杂细节,对外提供较为简洁的 API 接口,方便第三方应用快速集成即时通信功能。
安装
npm install @yxim/nim-web-sdk@latest
sdk 选择
sdk 默认提供以下几种形式
dist/SDK
├── NIM_Web_Chatroom_miniapp.js 聊天室小程序适配版 UMD 格式
├── NIM_Web_Chatroom_nodejs.js 聊天室node适配版 UMD 格式
├── NIM_Web_Chatroom_rn.js 聊天室 React-Native 适配版 UMD 格式
├── NIM_Web_Chatroom.js 聊天室浏览器适配版 UMD 格式
├── NIM_Web_NIM_miniapp.js IM 小程序适配版 UMD 格式
├── NIM_Web_NIM_nodejs.js IM node 适配版 UMD 格式
├── NIM_Web_NIM_rn.js IM React-Native 适配版 UMD 格式
├── NIM_Web_NIM.js IM 浏览器适配版 UMD 格式
├── NIM_Web_SDK_miniapp.js 集成包小程序适配版 UMD 格式
├── NIM_Web_SDK_nodejs.js 集成包node适配版 UMD 格式
├── NIM_Web_SDK_rn.js 集成包 React-Native 适配版 UMD 格式
├── NIM_Web_SDK.js 集成包浏览器适配版 UMD 格式
SDK的引入
- 使用 CommonJS 的模式进行引入,使用 webpack 的 dynamic requires 标准进行动态加载
- 示例代码
const SDK = require('@yxim/nim-web-sdk')
// 等效于
import SDK from '@yxim/nim-web-sdk'
// 若仅使用 IM 功能,则引入 IM 适配版
var NIM = require('@yxim/nim-web-sdk/dist/SDK/NIM_Web_NIM')
// 若使用聊天室能力则引入
var Chatroom = require('@yxim/nim-web-sdk/dist/NIM_Web_Chatroom')
SDK的初始化
- 示例代码
- NIM
// 初始化 NIM (可参考 https://doc.yunxin.163.com/docs/TM5MzM5Njk/zE0NDY4Njc?platformId=60179)
// NIM.getInstance接口为单例模式, 对于同一个账号, 永远返回同一份实例, 即只有第一次调用会初始化一个
var nim = NIM.getInstance({
debug: true, // 是否开启日志,将其打印到console。集成开发阶段建议打开。
appKey: 'appKey',
account: 'account',
token: 'token',
db:true, //若不要开启数据库请设置false。SDK默认为true。
// privateConf: {}, // 私有化部署方案所需的配置
onconnect: onConnect,
onwillreconnect: onWillReconnect,
ondisconnect: onDisconnect,
onerror: onError
});
function onConnect() {
console.log('连接成功');
}
function onWillReconnect(obj) {
// 此时说明 SDK 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接
console.log('即将重连');
console.log(obj.retryCount);
console.log(obj.duration);
}
function onDisconnect(error) {
// 此时说明 SDK 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面
console.log('丢失连接');
console.log(error);
if (error) {
switch (error.code) {
// 账号或者密码错误, 请跳转到登录页面并提示错误
case 302:
break;
// 重复登录, 已经在其它端登录了, 请跳转到登录页面并提示错误
case 417:
break;
// 被踢, 请提示错误后跳转到登录页面
case 'kicked':
break;
default:
break;
}
}
}
function onError(error) {
console.log(error);
}
// 断开链接
nim.disconnect({
done(err) {
console.log('disconnect success', err)
}
})
// nim 实例销毁
nim.destroy({
done(err) {
console.log('desctroy success', err)
}
})
- 聊天室
// 初始化 Chatroom (可参考 https://doc.yunxin.163.com/docs/TM5MzM5Njk/zE0NDY4Njc?platformId=60179)
var chatroom = Chatroom.getInstance({
appKey: 'appKey',
account: 'account',
token: 'token',
chatroomId: 'chatroomId',
chatroomAddresses: [
'address1',
'address2'
],
onconnect: onChatroomConnect,
onerror: onChatroomError,
onwillreconnect: onChatroomWillReconnect,
ondisconnect: onChatroomDisconnect,
// 消息
onmsgs: onChatroomMsgs
});
function onChatroomConnect(obj) {
console.log('进入聊天室', obj);
// 连接成功后才可以发消息
var msg = chatroom.sendText({
text: 'hello',
done: function sendChatroomMsgDone (msgObj) {
}
})
}
function onChatroomWillReconnect(obj) {
// 此时说明 `SDK` 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接
console.log('即将重连', obj);
}
function onChatroomDisconnect(error) {
// 此时说明 `SDK` 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面
console.log('连接断开', error);
if (error) {
switch (error.code) {
// 账号或者密码错误, 请跳转到登录页面并提示错误
case 302:
break;
// 被踢, 请提示错误后跳转到登录页面
case 'kicked':
break;
default:
break;
}
}
}
function onChatroomError(error, obj) {
console.log('发生错误', error, obj);
}
function onChatroomMsgs(msgs) {
console.log('收到聊天室消息', msgs);
}
// 离开聊天室
chatroom.disconnect({
done(err) {
console.log('disconnect success', err)
}
})
// 销毁聊天室实例
chatroom.destroy({
done(err) {
console.log('desctroy success', err)
}
})
使用指引目录
IM
聊天室
其他
9.16.1
28 days ago
8.9.126
28 days ago
9.16.0
1 month ago
8.9.125
2 months ago
8.9.124
3 months ago
9.14.4
3 months ago
8.9.123
3 months ago
9.14.3
4 months ago
8.9.122
4 months ago
9.14.2
4 months ago
8.9.121
5 months ago
8.9.116
9 months ago
8.9.115
10 months ago
8.9.114
10 months ago
8.9.113
11 months ago
8.9.119
7 months ago
8.9.118
7 months ago
8.9.117
8 months ago
9.12.0
11 months ago
9.13.0
9 months ago
9.12.1
10 months ago
9.12.2
10 months ago
9.14.1
6 months ago
8.9.120
6 months ago
8.9.112
11 months ago
8.9.111
12 months ago
9.8.100
1 year ago
9.11.0
12 months ago
8.9.110
1 year ago
8.9.109
1 year ago
8.9.108
1 year ago
9.10.0
1 year ago
9.10.1
1 year ago
9.9.0
1 year ago
8.9.107
1 year ago
8.9.106
1 year ago
8.9.105
1 year ago
9.8.0
1 year ago
9.6.4
1 year ago
9.6.3
2 years ago
8.9.104
2 years ago
8.9.104-alpha.3
2 years ago
9.6.1
2 years ago
9.6.0
2 years ago
8.9.103
2 years ago
8.9.103-alpha.8
2 years ago
8.9.103-alpha.6
2 years ago
8.9.103-alpha.5
2 years ago
8.9.103-alpha.1
2 years ago
9.5.0
2 years ago
8.9.102
2 years ago
8.9.102-alpha.6
2 years ago
9.3.1-alpha.1
2 years ago
9.3.2
2 years ago
8.9.100
2 years ago
9.3.1
2 years ago
9.3.0
2 years ago