模块事件
一、聊天室信息修改
聊天室模块会保存基本的聊天室状态信息,通过该事件监听聊天室状态改变
Event 事件: ChatEvents.ChatInfoChange
回调参数: Object
对象,详细类型说明如下
chatInfo
聊天室信息
ChatModuleInfo
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatInfoChange, (evt) => {
const chatInfo = evt.chatInfo;
console.log('聊天室是否已关闭', chatInfo.chatRoomIsClosed);
});
二、聊天室重连成功事件
说明: 当聊天室断连重连成功时触发该事件
Event 事件: ChatEvents.ChatReconnectSuccess
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatReconnectSuccess, () => {
console.info("重连成功!")
});
三、聊天室连接失败事件
说明: 当断网或其他因素导致聊天室链接失败时触发该事件
Event 事件: ChatEvents.ChatConnectFail
回调参数: Object
对象,详细类型说明如下
reason
连接失败原因
ChatConnectFailReason
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatConnectFail, (data) => {
confirm({
message: '聊天室连接失败,无法与其他人互动,立即刷新重试?',
onConfirm: () => location.reload(),
});
});
四、聊天消息事件
说明: 当收到聊天消息后触发该事件
Event 事件: ChatEvents.ChatMessage
回调参数: Object
对象,详细类型说明如下
chatMsg
聊天消息对象
ChatMsgType
示例:
// 聊天消息列表
const chatMsgList: ChatMsgType[] = [];
// 聊天消息事件
watchCore.chat.eventEmitter.on(ChatEvents.ChatMessage, (data) => {
// 插入到聊天消息列表
chatMsgList.push(data.chatMsg);
// 渲染聊天消息...
});
五、替换聊天消息事件
当调用 sendSpeakMsg
等发送消息方法中,发送到服务端前就会回调 ChatEvents.ChatMessage
事件,此时消息 id 为本地 id,发送到服务端并回调了消息 id 后触发该事件,收到该消息后根据 id 更新成新的消息对象和渲染信息。
另外发送图片消息如果服务端检测到违规图后也通过该事件更新。
Event 事件: ChatEvents.ReplaceChatMessage
回调参数: Object
对象,详细类型说明如下
id
替换的消息 id
string
chatMsg
新的消息对象
ChatMsgType
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ReplaceChatMessage, (data) => {
// 需要被替换的消息 id
const replaceId = data.id;
// 新的消息对象
const chatMsg = data.chatMsg;
const index = chatMsgList.findIndex((item) => item.id === replaceId);
if (index !== -1) {
chatMsgList[index] = chatMsg;
}
// 将视图的消息节点替换...
});
六、点赞事件
说明: 通过该事件监听用户的点赞事件
Event 事件: ChatEvents.ChatLike
回调参数: Object
对象,详细类型说明如下
count
点赞数
number
realtimeLikes
实时点赞数
number
userId
用户 id
string
nick
用户昵称
string
isSelf
是否自己点赞
boolean
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatLike, (data) => {
console.log('实时点赞数:', data.realtimeLikes);
console.log('该观众的点赞次数', data.count);
console.log('点赞的观众 id', data.userId);
console.log('点赞的观众昵称', data.nick);
});
七、点赞数修改事件
说明: 通过该事件监听点赞数改变事件,回调后更新页面的点赞数显示。
Event 事件: ChatEvents.ChatLikeCountChange
回调参数: Object
对象,详细类型说明如下
realtimeLikes
实时点赞数
number
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatLikeCountChange, (data) => {
console.log('实时点赞数:', data.realtimeLikes);
});
八、情绪反馈事件
说明: 通过该事件监听用户的情绪反馈事件
Event 事件: ChatEvents.ChatEmotionalFeedback
回调参数: Object
对象,详细类型说明如下
type
情绪类型
EmotionalFeedbackType
count
数量
number
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatEmotionalFeedback, (data) => {
console.log('类型:', data.type); // EmotionalFeedbackType
console.log('数量:', data.count);
});
九、聊天室用户登录事件
说明: 有观众进入聊天室后触发该事件
Event 事件: ChatEvents.ChatUserLogin
回调参数: Object
对象,详细类型说明如下
user
用户信息
ChatMessageUser
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatUserLogin, (data) => {
const user = data.user;
toast.info(`欢迎 ${user.nick} 进入`);
});
十、聊天室用户登出事件
说明: 当观众退出聊天室后触发该事件
Event 事件: ChatEvents.ChatUserLogout
回调参数: Object
对象,详细类型说明如下
userId
用户 userId
string
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatUserLogout, (data) => {
const userId = data.userId;
console.log('退出的用户 id', userId);
});
十一、当前用户重复登录事件
说明: 当用户重复登录聊天室时触发该事件,触发后当前页面将无法接收到任何聊天室消息
Event 事件: ChatEvents.CurrentUserRelogin
回调参数: Object
对象,详细类型说明如下
causeBy
错误来源
string
示例:
watchCore.chat.eventEmitter.on(ChatEvents.CurrentUserRelogin, (data) => {
toast.errot('您已在其他地方登录,3 秒后将推出该页面');
setTimeout(() => {
location.replace('跳出到页面地址');
}, 3000);
});
十二、清空聊天室事件
说明: 管理员清空聊天历史记录后触发该事件
Event 事件: ChatEvents.ClearMsgHistory
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ClearMsgHistory, () => {
console.log('管理员清空历史记录,todo 清空聊天记录列表');
});
十三、删除某条消息事件
说明: 管理员删除某条历史消息后触发该事件
Event 事件: ChatEvents.RemoveChatMsg
回调参数: Object
对象,详细类型说明如下
id
删除的消息 id
string
示例:
watchCore.chat.eventEmitter.on(ChatEvents.RemoveChatMsg, (data) => {
console.log('管理员删除历史消息,删除的消息 id:', data.id);
});
十四、聊天室关闭事件
说明: 讲师或管理员关闭聊天室后触发该事件
Event 事件: ChatEvents.CloseChatRoom
示例:
watchCore.chat.eventEmitter.on(ChatEvents.CloseChatRoom, () => {
watchCore.chat.sendSystemMsg('聊天室已关闭');
});
十五、聊天室开启事件
说明: 讲师或管理员开启聊天室后触发该事件
Event 事件: ChatEvents.OpenChatRoom
示例:
watchCore.chat.eventEmitter.on(ChatEvents.CloseChatRoom, () => {
watchCore.chat.sendSystemMsg('聊天室已打开');
});
十六、在线人数改变事件
说明: 当观众上线/下线时,会回调该事件用于实时获取在线人数
Event 事件: ChatEvents.OnlineUserCountChange
回调参数: Object
对象,详细类型说明如下
onlineUserCount
实时在线人数
number
示例:
watchCore.chat.eventEmitter.on(ChatEvents.OnlineUserCountChange, (data) => {
console.log('在线人数改变:', data.onlineUserCount);
});
十七、在线用户列表改变事件
说明: 当开始轮询在线用户列表时,会回调该事件\
Event 事件: ChatEvents.OnlineUserListChange
回调参数: UserListResult
示例:
watchCore.chat.eventEmitter.on(ChatEvents.OnlineUserListChange, (data) => {
console.log('在线用户列表:', data.userlist);
});
十八、聊天消息重放-重新加载
说明: 通知外部重新加载聊天重放的数据
Event 事件: ChatEvents.ChatMsgReplayReload
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatMsgReplayReload, () => {
// initChatMsgRender
console.log('需要重新加载聊天重放数据渲染表格');
});
十九、聊天消息重放状态
Event 事件: ChatEvents.ChatMsgReplayStatusChange
回调参数: Object
对象,详细类型说明如下
status
重放状态
ChatMsgReplayStatus
示例:
watchCore.chat.eventEmitter.on(ChatEvents.ChatMsgReplayStatusChange, (params) => {
console.log('聊天重放状态变更:', params.status);
});
二十、超出直播间最大在线人数
Event 事件: ChatEvents.OverMaxOnlineCount
二十一、白名单移除用户
Event 事件: ChatEvents.WhiteListRemoveUser
二十二、评论上墙事件
Event 事件: ChatEvents.SpeakToTop
回调参数: ChatMsgSpeakTopType
二十三、评论取消上墙事件
Event 事件: ChatEvents.SpeakCancelTop
Last updated
Was this helpful?