npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@yxim/nim-web-sdk

v9.21.0

Published

NIM Web SDK 网易云信|真正稳定的即时通讯云服务

Readme

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

聊天室

其他