IM 即时通讯
Android
产品介绍
简介
产品优势
主要功能
功能介绍
帐号集成与登录
群组功能
聊天室功能
聊天室标签功能
圈组功能
多端登录与互踢策略
质量数据监控台
海外数据中心
IM平滑迁移方案
接口及业务限制
更新日志
IM UIKit 更新日志
NIM SDK 开发版更新日志
NIM SDK 稳定版更新日志
体验 Demo
下载 SDK 与 Demo 源码
快速开始
跑通 IM Demo 源码
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能概览
快速集成 IM UIKit
组件导入
初始化
界面跳转
自定义用户信息
全局配置
会话列表相关
集成会话列表界面
会话列表事件监听
自定义会话列表界面 UI
会话列表 API 概览
会话消息相关
集成会话界面
会话界面事件监听
实现地理位置消息功能(含 UI)
实现自定义消息发送(含 UI)
自定义会话界面 UI
会话消息 API 概览
通讯录相关
集成通讯录界面
自定义通讯录界面 UI
通讯录界面事件监听
通讯录 API 概览
IM UIKit API 概览
不含 UI 集成
集成 SDK
初始化
登录相关
登录 IM
多端登录与互踢
登出 IM
消息相关
消息概述
消息收发
自定义消息收发
消息配置选项
NOS 存储场景
广播消息收发
消息已读回执
消息撤回
消息重发与转发
消息更新
消息过滤
语音消息处理
插入本地消息
历史消息
最近会话
服务端会话服务
用户资料
用户关系
在线状态订阅
系统通知
系统通知概述
内置系统通知管理
内置系统通知未读数
自定义系统通知收发
离线推送与消息提醒
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
聊天室
圈组功能
圈组概述
登录管理
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
实时互动频道
频道分组
频道分组黑白名单
频道未读数管理
搜索服务器和频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
用户定制权限
频道分组身份组
自定义权限项
成员权限查询与判定
身份组相关查询
圈组订阅机制
圈组消息相关
图解圈组消息流转
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
会话消息回复(Thread)
圈组快捷评论
获取频道最后一条消息
查询历史消息
圈组消息缓存
圈组消息搜索
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组离线推送
圈组内容审核
圈组相关抄送
圈组第三方回调
圈组各端接口命名差异
反垃圾
聊天扩展
其他
最佳实践
IM 登录最佳实践
IM 应用隐私合规
聊天室重要消息投递
API 参考
Android SDK API
Android 端状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
开通聊天室功能
配置应用客户端标识
常见问题
FAQ
错题集
Android 端推送问题排查
服务协议

聊天室标签功能

更新时间: 2022/11/30 16:34:01

聊天室标签功能

功能简介

网易云信聊天室功能帮助开发者搭建一款应用中的聊天室,广泛应用在社交娱乐、教育直播等场景下。默认情况下,聊天室的消息会向聊天室内所有在线成员下发。从V8.4.0版本开始,新增聊天室标签功能,可以灵活地支持将聊天室消息向聊天室内部分成员下发。也支持仅接收特定的消息

应用场景

超级小班课

大型多人课堂与小班互动模式结合。1名老师授课时,可将学生分成若干个小班,在小班内进行管理与教学互动,可兼顾直播大班课的教学成本优势和小班课的互动教学效果。

上图是一个典型的超级小班课场景:

  • 所有的班级成员均在同一个聊天室下
  • 授课老师可以向所有班级发送消息,也可接收所有班级的讨论信息
  • 学生仅可以接收班级内的讨论消息,所发送的消息也只能在班级内可见
  • 助教角色可自行配置,既可以管理1个班级,也可以管理多个班级

大型直播聊天室

大型直播聊天室场景下,考虑到弹幕刷屏、争论现象,可以对用户进行标签化分组,可以达到以下场景的效果:

  • 多位艺人明星同场直播,艺人明星的粉丝可以内部互动,不同明星之间的粉丝不互动
  • 体育竞技、电子竞技等,比赛双方的观众可以选择支持的战队,仅在战队粉丝内部互动
  • 根据用户特点制订适合自己应用的标签策略,同一个聊天室内,同好、同年龄段的用户之间互相交流

功能详情

聊天室的标签功能通过在登录和发消息时设置标签相关字段来达到个性化的消息发送和接收的效果,具体的流程如下:

登录

登录时支持设置两个参数:

  • 第一个参数叫tags,用于标识本次登录所在的长连接归属于哪些标签,是一个json的数组,同一个长连接最多支持设置10个标签,每个标签最多32个字符,如:["abc", "def"]
  • 第二个参数叫notifyTargetTags,是一个标签表达式,表示本次登录以及随后的登出操作产生的进出通知应该广播给哪些标签用户,若缺省则服务器会根据tags自动自动生成一个标签表达式,生成的规则是将tags中的所有标签通过and关键词进行组合,表示只有同时设置了所有tags中的标签的用户能收到我的进出通知

SDK发消息

支持设置一个参数,叫notifyTargetTags,是一个标签表达式,表示本条消息发送给哪些人,如果缺失则会使用登录时设置的notifyTargetTags

API发消息

支持设置一个参数,叫notifyTargetTags,是一个标签表达式,表示本条消息发送给哪些人,如果缺失则会发给所有人

新增标签相关接口

新增接口(含SDK的接口和服务器API),具体如下:

  • 禁言/解禁某个标签的用户,此接口只允许管理员或者聊天室的创建者调用,调用后,凡是设置了该标签的用户均不能发送消息,比如禁言了标签A,则登录时设置了标签["A","B"]的客户也不能发送消息
  • 查询某个标签下的在线用户数,注意相同账号登录多端的情况下,在线用户数算1个
  • 查询某个标签下的在线成员列表,这是一个分页查询的接口,对于多端登录的用户,本接口会返回多条记录
  • 修改聊天室用户的标签,修改 tag 后会通知被修改人的所有在线端并广播通知聊天室内所有用户
  • 查询标签下的聊天室历史消息,注意可传多个标签

标签表达式

标签表达式的作用用于设定聊天室的通知/消息的投递对象,表达式支持设置交并集,也支持设置正则匹配,并且可以使用括号来设置表达式中的优先级(类似于加减乘除四则运算中的括号),每个标签表达式限制最多128个字符

以下是一些标签表达式的示例:

1)匹配标签abc

{"tag": "abc"}

2)匹配标签abc或者def

{"tag": "abc"} or {"tag": "def"}

3)匹配标签abc且def

{"tag": "abc"} and {"tag": "def"}

4)使用正则匹配标签abc

{"tag": "abc.*", "matchType": "regex"}

5)匹配标签abc或者def,并且,同时正则匹配标签123或456

({"tag": "abc"} or {"tag": "def"}) and ({"tag": ".*123", "matchType": "regex"} or {"tag": "456.*", "matchType": "regex"})
此文档是否对你有帮助?
有帮助
我要吐槽
  • 功能简介
  • 应用场景
  • 超级小班课
  • 大型直播聊天室
  • 功能详情
  • 登录
  • SDK发消息
  • API发消息
  • 新增标签相关接口
  • 标签表达式