群消息管理
更新时间: 2024/03/14 19:21:12
网易云信 NIM SDK 支持群组中的消息收发,群组相关操作的通知消息的接收,以及群消息通知模式的设置。
群消息收发
群组中支持收发多种消息类型。
在创建/加入群组后,用户发送和接收消息的接口与单聊消息收发相同,区别在于会话类型(scene
)的参数配置,选择 team
即可。
EMsgScene
参数说明
枚举常量 | 说明 |
---|---|
p2p | 单聊 |
superTeam | 超大群 |
team | 高级群 |
具体消息收发的流程,请参见消息收发。
群组通知消息
NIM SDK 内置支持的会话消息类型(EMsgType
)中的通知消息(notification
)主要用于群组的事件通知,由服务端下发,客户端无法发送事件通知消息。
群组可能会触发以下事件,具体事件类型请参见IMEventInterface
。
teams
:初始化同步群createTeam
多端同步创建群的情况updateTeamMember
更新群成员的多端同步updateTeam
群更新addTeamMembers
群成员添加updateTeamManagers
群管理员更新transferTeam
转让群removeTeamMembers
移除群成员dismissTeam
解散群updateTeamMembersMute
群成员禁言
除此之外,以下事件也涉及群组:
- `sysMsg` 接收系统通知,其中系统通知指涉及群组的类型有:`applyTeam`(申请入群)、`teamInvite`(邀请入群)、`rejectTeamInvite`(拒绝入群邀请)、`rejectTeamApply`(拒绝入群申请)、'recallMsgTeam'(群消息撤回)、'deleteMsgTeamOneWay'(群消息单向删除)
- `updateSystemMessages` 系统通知更新
- `teamMsgReceipts` 接收群已读回执
示例代码如下:
// 事件声明
const eventList = [
'teams',// 初始化同步群
'createTeam',// 多端同步创建群的情况
'updateTeamMember', // 更新群成员的多端同步
'updateTeam', 'addTeamMembers', 'updateTeamManagers', 'transferTeam', 'removeTeamMembers', 'dismissTeam', 'updateTeamMembersMute',
]
// 注册监听
eventList.forEach((key: any) => {
nim.on(key, (res) => {
console.log(`收到 ${key} 事件:`, res ? JSON.parse(JSON.stringify(res)) : res);
});
})
群消息免打扰
SDK 支持对群消息通知提醒模式的配置。群消息通知提醒模式分为:
- 全部提醒(默认)
- 仅群主/管理员消息提醒
- 全部不提醒
通过调用 updateMyMemberInfo
来修改群消息的提醒模式。
目前支持修改的属性包括以下三种:
nickInTeam
: 自己在群组中的群昵称。更新昵称后, 所有其他在线的群成员会收到updateTeamMember
事件通知。bitConfigMask
: 群组消息的提醒策略。0:开启提醒;1:关闭消息提醒;2:只接收群主和管理员的消息的提醒。ext
: 第三方扩展字段, 开发者可以自行扩展, 建议封装成 JSON 格式字符串。
接口原型:
jsupdateMyMemberInfo(options: UpdateMyMemberInfoOptions): Promise<TeamMember>
UpdateMyMemberInfoOptions
参数说明
参数 | 类型 | 说明 |
---|---|---|
teamId | String | 群ID |
bitConfigMask | number | 提醒策略 0:开启提醒 1:关闭消息提醒 2:只接收群主和管理员的消息的提醒 |
nickInTeam | String | 群昵称 |
ext | String | 第三方扩展字段, 开发者可以自行扩展, 建议封装成 JSON 格式字符串 |
示例代码:
jsawait nim.team.updateMyMemberInfo({
teamId: '{{TARGET_TEAM_ID}}',
nickInTeam: '张三',
bitConfigMask: '2',
ext: '扩展字段, 建议封装成 JSON 格式字符串',
});
群消息已读回执
群聊消息已读回执相关接口,请参见发送已读回执。
API 参考
API |
说明 |
---|---|
updateMyMemberInfo |
设置指定群消息通知类型 |
sendTeamMsgReceipt |
(群消息接收方)标记群组消息已读 |
此文档是否对你有帮助?