群消息管理
更新时间: 2024/11/18 16:24:01
网易云信 IM 支持群组中消息的收发,群组相关操作的通知类消息的接收,以及群消息通知模式的设置。
支持平台
本文内容适用的开发平台或框架如下表所示:
Android | iOS | macOS/Windows | Web/uni-app/小程序 | Node.js/Electron | HarmonyOS | Flutter |
---|---|---|---|---|---|---|
✔️️️ | ✔️️️ | ✔️️️ | ✔️️️ | ✔️️️ | ✔️️️ | ✔️ |
群消息收发及历史消息
在创建或加入群组后,用户发送和接收消息的接口与单聊消息收发相同,区别在于会话类型的参数配置,TEAM
为高级群,SUPER_TEAM
为超大群。
群通知消息
NIM SDK 支持的通知类消息(NOTIFICATION
)主要用于群组、聊天室和超大群的事件通知,由服务端下发,客户端无法发送事件通知消息。
群通知消息类型
目前支持通知消息的事件类型如下:
事件类型 | 枚举值 | 事件说明 |
---|---|---|
TEAM_INVITE | 0 | 邀请成员入高级群 |
TEAM_KICK | 1 | 高级群成员被踢出 |
TEAM_LAVE | 2 | 高级群成员退群 |
TEAM_UPDATE_TINFO | 3 | 高级群信息更新 |
TEAM_DISMISS | 4 | 高级群被解散 |
TEAM_APPLY_PASS | 5 | 进高级群申请通过 |
TEAM_OWNER_TRANSFER | 6 | 高级群主身份转移 |
TEAM_ADD_MANAGER | 7 | 添加高级群管理员 |
TEAM_REMOVE_MANAGER | 8 | 移除高级群管理员 |
TEAM_INVITE_ACCEPT | 9 | 接受邀请进高级群 |
TEAM_BANNED_TEAM_MEMBER | 10 | 禁言高级群成员 |
SUPER_TEAM_INVITE | 401 | 超大群拉人 |
SUPER_TEAM_KICK | 402 | 超大群踢人 |
SUPER_TEAM_LAVE | 403 | 退出超大群 |
SUPER_TEAM_UPDATE_TINFO | 404 | 更新超大群信息 |
SUPER_TEAM_DISMISS | 405 | 超大群解散 |
SUPER_TEAM_APPLY_PASS | 410 | 超大群申请加入通过 |
SUPER_TEAM_OWNER_TRANSFER | 406 | 移交超大群主 |
SUPER_TEAM_ADD_MANAGER | 407 | 添加超大群管理员 |
SUPER_TEAM_REMOVE_MANAGER | 408 | 移除超大群管理员 |
SUPER_TEAM_INVITE_ACCEPT | 411 | 接受邀请进超大群 |
SUPER_TEAM_BANNED_TEAM_MEMBER | 409 | 禁言超大群成员 |
群通知消息解析步骤
- 通过消息类型字段(
messageType
)判断是否为通知消息(NOTIFICATION
)。 - 将消息的附件对象(
attachment
)强类型转换为消息通知附件对象(NIMMessageNotificationAttachment
)。 - 通过消息通知附件对象的类型字段(type),获取具体的通知类型。
- 根据对应的通知类型构造相应的展示信息:
- 消息对象的
senderId
:事件的操作者 ID,表示是谁主动执行了该操作。 - 消息通知附件对象的
targetIds
:事件的被操作者 ID 列表,表示该操作的承受者。(事件类型 0、1、5、6、7、8、9、10 有该字段) - 消息通知附件对象的
chatBanned
:群成员禁言状态 - 消息通知附件对象的
updatedTeamInfo
:群信息更新参数
- 消息对象的
群定向消息
在群组维度场景下,有时需要向群组中特定成员发送消息,以确保消息能够准确的传达给目标用户,同时可以避免对其他成员造成干扰。一般有以下使用场景:
- 协同办公:针对特定成员发送特定任务,可以通过定向消息,保障消息传达给对应成员,提高沟通效率。
- 在线教育:老师的差异化教学,针对不同的学生给出不同的辅导建议,可以使用定向消息保障老师与学生的精准交流。
- 客户服务:在以群组为主的客户服务场景中,客服人员可能需要发送消息给特定客户,确认相关订单信息,通过定向消息,可以提供客户的满意度,同时也能提供沟通交流的效率,减少纠纷。
- 社区管理:管理员或成员需要向特定的成员发送相关问题或规则,或定向发送活动邀约信息,定向消息可以提升沟通效率,减少消息打扰。
- 自 IM V10.4.0 起开始支持群定向消息功能,群定向消息不支持 PIN 消息和 Thread 消息类型,快捷评论只影响定向消息范围。
- 群定向消息功能自 IM 旗舰版开始支持,低于旗舰版本不支持。
- 单聊场景下该功能失效。
通过发送消息(sendMessage
)接口的配置参数中的 targetConfig
参数来配置群定向消息。
参数说明:
名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
inclusive |
Boolean | 是 | true | 群定向消息成员列表是否为可见列表。默认为 true,即 receiver_account_ids 为可见(接收)列表;receiver_account_ids 之外的成员为不可见列表。若设置为 false,则相反。inclusive 设置为 false。 |
receiverIds |
List<String> | 是 | - | 群定向消息成员列表,即指定接收群消息的群成员列表。若为空或 size=0,则发送给群组中的所有人。inclusive 为 true,当前列表为可见(接收)列表。inclusive 为 false,当前列表为不可见(不接收)列表。 |
newMemberVisible |
Boolean | 否 | false | 新进群成员是否可见该消息。默认为 false,即新进群成员不可以查看该群定向消息。若设置为 true,则新进群成员若可以查询该定向消息,可以通过云端历史相关接口查询到该消息。inclusive 为 true 时,不能同时设置 visible_to_new_member 为 true。即发送定向列表为可见的定向消息时,只能由定向列表中成员接收和查看。visible_to_new_member 设置为 true。 |
群消息免打扰
群消息免打扰的设置请参考 免打扰设置。
配置群消息强制推送/提醒
云信 NIM SDK 支持对于群消息的强制推送/提醒功能。
当发送方设置了某条群消息的强制推送/提醒,群消息接收者即使设置了该群的群消息免打扰或全局的免打扰(具体参考 全局推送免打扰),仍能接收到该条群消息的在线提醒或离线推送。
- 对于 Android 而言,若用户离线,则强制发送离线推送;若在线,则强制发送在线提醒。
- 对于其他客户端而言,只发送离线推送。
通过消息体的第三方推送选项字段 pushConfig
来实现。
forcePush
:是否忽略用户的推送或提醒相关设置,强制推送或提醒。- 该字段仅对群消息有效。
- 该字段仅针对
forcePushAccountIds
中的用户。 - 默认为 false。如需要强制推送/提醒,需要设置为 true。
forcePushContent
:强制推送/提醒文案,若为空,则复用推送文案pushContent
。forcePushAccountIds
:强制推送/提醒的目标用户列表。若为空,则表示强制推送/提醒该会话的所有成员。若不为空,最多可传入 100 个用户账号。
- 对于
forcePushAccountIds
中的用户,推送文案/提醒使用forcePushContent
(若为空则使用pushContent
)。 - 对于不在
forcePushAccountIds
中的用户,推送文案/提醒使用pushContent
。
群消息已读回执
常见问题
在主动退群、被踢、解散群之后,会收到一条相应类型的群组通知消息,相关会话信息仍会保留,只是此后不再接收关于此群的消息。如果在收到相应的群通知消息之前将会话删除,则收到群通知消息后,SDK 会重建对应会话。因此,若需彻底删除群组会话,正确时机是收到相应类型的群通知消息之后。
涉及接口
Android/iOS/macOS/Windows/Web/uni-app/小程序/Node.js/Electron/HarmonyOS
API | 说明 |
---|---|
V2NIMConversationType |
会话类型 |
V2NIMMessageType |
消息类型 |
V2NIMMessageNotificationType |
通过消息类型 |
V2NIMMessage |
消息对象 |
V2NIMMessageNotificationAttachment |
通知附件对象 |
sendMessage |
发送消息 |
V2NIMMessageTargetConfig |
群定向消息配置信息 |
V2NIMMessagePushConfig |
消息第三方推送配置信息 |
Flutter
API | 说明 |
---|---|
NIMConversationType |
会话类型 |
NIMMessageType |
消息类型 |
NIMMessageNotificationType |
通过消息类型 |
NIMMessage |
消息对象 |
NIMMessageNotificationAttachment |
通知附件对象 |
sendMessage |
发送消息 |
NIMMessageTargetConfig |
群定向消息配置信息 |
NIMMessagePushConfig |
消息第三方推送配置信息 |
此文档是否对你有帮助?