node-nim 是 NetEase IM PC SDK 的上层封装,使您可以在喜爱的前端框架中利用其所有功能, 并拥有原生平台性能。
更全面的文档,更新日志和技术支持,请访问 https://dev.yunxin.163.com/。
| 运行时 | 版本 |
|---|---|
| Electron | >= v8.5.5 |
| Node.js | >= v12.13.0 |
| 操作系统 | 要求 |
|---|---|
| Windows | >= Windows 7 |
| macOS | >= 10.14.0 |
| Linux | glibc >= 2.23 |
| 平台 | 架构 |
|---|---|
| Windows | x64 |
| Windows | ia32 |
| macOS | x64 |
| macOS | arm64 |
| Linux | x64 |
| Linux | arm64 |
node-nim 是一个可以使用 npm install 命令安装的 NPM 包。
它会自动下载适合您当前平台的预构建二进制文件。
npm install node-nim
也许您需要在 x64 平台上构建 ia32 应用程序或类似的操作,您可以使用 --arch 和 --platform 来指定要构建的平台。
npm install node-nim --arch=x64 --platform=win32
npm install node-nim --arch=ia32 --platform=win32
npm install node-nim --arch=x64 --platform=darwin
npm install node-nim --arch=arm64 --platform=darwin
npm install node-nim --arch=x64 --platform=linux
npm install node-nim --arch=arm64 --platform=linux
从技术上讲,原生的 NIM SDK 附带了一个预编译的 node-nim.node 二进制文件,而 npm install 的时候会自动安装, 所以正常使用是无需构建的。
但是如果您想添加个性功能或仅仅是想试一下,请随意构建!
构建要求:
现在您已经准备好进行构建,在项目根目录下运行以下命令:
cmake -Bbuild
cmake --build build --config Release
然后您就能在 build 目录下找到构建好的 node-nim.node 二进制文件了。
首先您需要导入 node-nim 模块:
// ES6 Module
import * as NIM from 'node-nim'
// CommonJS
const NIM = require('node-nim')
导入模块后,您可以直接使用我们已经帮您实例化好的三类对象,如即时通讯、聊天室、圈组,示例代码如下:
// IM 相关功能
NIM.nim.client.init('', '', '', {})
NIM.nim.client.cleanup('')
// 聊天室相关功能
NIM.chatroom.init('', '')
NIM.chatroom.cleanup()
// 圈组相关功能
NIM.qchat.instance.init({ appkey: 'your appkey', app_data_path: 'qchat' })
NIM.qchat.instance.cleanup({})
其中 NIM.nim 可直接访问的对象有:
| 对象名 | 说明 |
|---|---|
| client | 客户端模块 |
| dataSync | 数据同步模块 |
| friend | 好友模块 |
| global | 全局模块 |
| msgLog | 消息记录模块 |
| nos | NOS 模块 |
| onlineSession | 在线会话模块 |
| passThroughProxy | 透传代理模块 |
| session | 会话模块 |
| subscribeEvent | 事件订阅模块 |
| superTeam | 超级群模块 |
| sysMsg | 系统消息模块 |
| talk | 会话模块 |
| team | 群组模块 |
| tool | 工具模块 |
| user | 用户模块 |
| plugin | 插件模块 |
| talkEx | 消息扩展模块,PIN 消息、快捷评论、收藏 |
可通过 NIM.chatroom 直接访问的对象对应 ChatRoomModule,您可以直接访问该对象下的成员函数。
可通过 NIM.qchat 直接访问的对象有:
| 对象名 | 说明 |
|---|---|
| instance | 圈组实例模块 |
| server | 圈组服务器模块 |
| channel | 圈组频道模块 |
| channelCategory | 圈组频道分类模块 |
| message | 圈组消息模块 |
| systemNotification | 圈组系统通知模块 |
| attachment | 圈组附件模块 |
| role | 圈组身份组模块 |