@yxim/nim-web-sdk
TypeScript icon, indicating that this package has built-in type declarations

9.19.0 • Public • Published

网易云信即时通讯 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

聊天室

其他

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
9.19.091latest
8.9.13222stable

Version History

VersionDownloads (Last 7 Days)Published
9.19.091
9.18.126
8.9.13222
8.9.1313
9.18.02
8.9.1302
9.17.55
9.17.41
9.17.31
8.9.1291
9.17.20
9.17.10
9.17.00
8.9.1280
9.16.21
8.9.1270
9.16.10
8.9.1260
9.16.00
8.9.1250
8.9.1240
9.14.4134
8.9.1230
9.14.324
8.9.1220
9.14.20
8.9.1211
9.14.11
8.9.1200
8.9.1190
8.9.1180
8.9.1170
8.9.1160
9.13.00
8.9.1151
9.12.20
8.9.1140
9.12.10
8.9.1130
9.12.00
8.9.1120
9.11.03
8.9.1110
9.8.1000
8.9.1100
9.10.10
9.10.00
8.9.1091
8.9.1080
9.9.00
8.9.1070
8.9.1060
8.9.1050
9.8.04
9.6.40
9.6.30
8.9.1040
8.9.104-alpha.31
9.6.10
9.6.00
8.9.1030
8.9.103-alpha.80
8.9.103-alpha.60
8.9.103-alpha.51
9.5.01
8.9.1020
9.3.20
8.9.1001
9.3.10
9.3.00

Package Sidebar

Install

npm i @yxim/nim-web-sdk

Weekly Downloads

328

Version

9.19.0

License

none

Unpacked Size

11.5 MB

Total Files

101

Last publish

Collaborators

  • netease-yunxin