IM 即时通讯
Windows/macOS
产品介绍
简介
主要功能
产品优势
海外数据中心
IM平滑迁移方案
接口及业务限制
功能介绍
帐号集成与登录
基础消息功能
群组功能
聊天室功能
聊天室标签功能
圈组功能
多端登录与互踢策略
质量数据监控台
更新日志
Demo 更新日志
NIM SDK 更新日志
快速开始
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
开发指南
概要介绍
集成方式(当前版本)
集成方式(Windows旧版本)
集成方式(macOS旧版本)
初始化
登录登出
消息收发
最近会话
历史记录
用户资料托管
好友关系托管
事件订阅
系统通知
系统通知概述
内置系统通知管理
内置系统通知未读数
自定义系统通知收发
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
开通聊天室功能
聊天室
圈组功能
初始化
登录圈组
圈组服务器管理
圈组服务器成员管理
游客功能
频道相关
频道管理
频道分组
频道分组黑白名单
频道未读数管理
搜索服务器和频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
频道分组身份组
频道用户定制权限
自定义权限项
成员权限判定
身份组相关查询
圈组订阅机制
圈组消息相关
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
会话消息回复(Thread)
圈组快捷评论
获取频道最后一条消息
消息正在输入
圈组消息搜索
圈组消息查询
查询@我的消息
服务器未读数
圈组系统通知
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组各端接口命名差异
语音录制与播放
NOS云存储服务
文档转换
API 参考
Windows/macOS API 参考
状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
配置应用客户端标识
参考文档
升级指引
开发示例
UI库指南
Demo源码导读
打包发布
类与常量定义说明
常见问题
FAQ
服务协议

聊天室标签功能

更新时间: 2022/10/27 20:52:50

功能简介

网易云信聊天室功能帮助开发者搭建一款应用中的聊天室,广泛应用在社交娱乐、教育直播等场景下。默认情况下,聊天室的消息会向聊天室内所有在线成员下发。从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发消息
  • 新增标签相关接口
  • 标签表达式