完整的 NIM SDK 由 NIMInterface, ChatroomServiceInterface 组成。
SDK 的入口,负责建立长连接,登录,断开长连接,销毁实例、多端互踢等功能。它的调用形式如
const nim = new NIM({
// ...初始化配置信息
appkey: 'YOUR_APPKEY',
account: 'YOUR_ACCID',
token: 'YOUR_TOKEN',
debugLevel: 'debug',
})
// 初始化事件监听
const eventList = [
// 登陆完成事件
'logined',
// 收到多端登陆通知触发事件
'multiPortLogin',
// 被踢
'kicked',
// 即将开始重连
'willReconnect',
// 断开连接
'disconnect',
// 收到消息
'msg',
]
eventList.forEach((key: any) => {
nim.on(key, (res) => {
console.log(`收到 ${key} 事件:`, res ? JSON.parse(JSON.stringify(res)) : res);
});
})
// 连接并且登陆后,会收到 logined 事件
await nim.connect()
await nim.msg.sendTextMsg()
初始化参数见 NIMInterface.NIMInitializeOptions
初始化事件见 NIMInterface.IMEventInterface
| 方法 | 功能描述 |
|---|---|
| NIMInterface.connect | 建立长连接,并且登录 |
| NIMInterface.disconnect | 断开连接。 |
| NIMInterface.destroy | 销毁实例 |
这里只例举部分 API,完整的 API 请参见 MsgServiceInterface
| 方法 | 功能描述 |
|---|---|
| MsgServiceInterface.sendTextMsg | 发送文本消息 |
| MsgServiceInterface.sendTipMsg | 发送提醒消息 |
| MsgServiceInterface.sendGeoLocationMsg | 发送文件消息 |
| MsgServiceInterface.sendCustomMsg | 发送文件消息 |
| MsgServiceInterface.sendFileMsg | 发送其他文件消息 |
| MsgServiceInterface.sendImageMsg | 发送图片消息 |
| MsgServiceInterface.sendVideoMsg | 发送视频消息 |
| MsgServiceInterface.sendAudioMsg | 发送音频消息 |
| MsgServiceInterface.forwardMsg | 转发消息 |
| MsgServiceInterface.recallMsg | 撤回消息 |
| MsgServiceInterface.deleteSelfMsgs | 单向删除消息 |
| MsgServiceInterface.sendMsgReceipt | 发送已读标记 |
| MsgServiceInterface.sendTeamMsgReceipt | 发送群已读标记 |
| MsgServiceInterface.getTeamMsgReads | 获取群消息已读的数量 |
| MsgServiceInterface.getTeamMsgReadAccounts | 获取群消息已读的账号 |
这里只例举部分 API,完整的 API 请参见 MsgLogServiceInterface
| 方法 | 功能描述 |
|---|---|
| MsgLogServiceInterface.deleteRoamingMsgs | 批量删除服务器上某些会话的漫游消息 |
这里只例举部分 API,完整的 API 请参见 EventServiceInterface
| 方法 | 功能描述 |
|---|---|
| EventServiceInterface.publishEvent | 发布某事件 |
| EventServiceInterface.subscribeEvent | 订阅某事件 |
| EventServiceInterface.unSubscribeEvents | 取消订阅 |
| EventServiceInterface.querySubscribeEvents | 查询所订阅的事件 |
这里只例举部分 API,完整的 API 请参见 FriendServiceInterface
| 方法 | 功能描述 |
|---|---|
| FriendServiceInterface.getFriends | 获取好友列表 |
| FriendServiceInterface.addFriend | 直接加为好友 |
| FriendServiceInterface.applyFriend | 申请加为好友 |
| FriendServiceInterface.deleteFriend | 删除好友 |
| FriendServiceInterface.updateFriend | 更新好友 |
这里只例举部分 API,完整的 API 请参见 PassThroughServiceInterface
| 方法 | 功能描述 |
|---|---|
| PassThroughServiceInterface.request | 透传协议 |
这里只例举部分 API,完整的 API 请参见 MsgExtendServiceInterface
| 方法 | 功能描述 |
|---|---|
| MsgExtendServiceInterface.getThreadMsgs | 获取 thread 消息列表 |
| MsgExtendServiceInterface.getMsgsByIdServer | 获取 thread 历史消息 |
这里只例举部分 API,完整的 API 请参见 SessionServiceInterface
| 方法 | 功能描述 |
|---|---|
| SessionServiceInterface.getSession | 获取会话 |
| SessionServiceInterface.getSessions | 获取会话列表 |
| SessionServiceInterface.resetSessionUnreadCount | 重置某个会话的未读数 |
| SessionServiceInterface.resetAllSessionsUnreadCount | 重置所有会话的未读数 |
| SessionServiceInterface.deleteSession | 删除指定的会话 |
| SessionServiceInterface.deleteAllSessionsFromLocal | 删除所有本地的会话 |
这里只例举部分 API,完整的 API 请参见 SystemMessageServiceInterface
| 方法 | 功能描述 |
|---|---|
| SystemMessageServiceInterface.sendCustomSysMsg | 发送自定义系统通知 |
这里只例举部分 API,完整的 API 请参见 TeamServiceInterface
这里只例举部分 API,完整的 API 请参见 UserServiceInterface
| 方法 | 功能描述 |
|---|---|
| UserServiceInterface.setBlack | 加入黑名单/从黑名单移除 |
| UserServiceInterface.setMute | 加入静音列表/从静音列表移除 |
| UserServiceInterface.getUsersNameCardFromServer | 获取用户名片数组 |
| UserServiceInterface.updateMyNameCard | 更新我的名片 |
| UserServiceInterface.getRelations | 获取关系(黑名单和静音列表) |
| UserServiceInterface.getBlackList | 获取黑名单列表 |
| UserServiceInterface.getMuteList | 获取静音列表 |