模組事件
一、V2 的聊天室 SDK 安裝完成回呼
Event 事件: ChatEvents.ChatSdkV2Setuped
二、聊天室資訊修改
聊天室模組會保存基本的聊天室狀態資訊,透過該事件監聽聊天室狀態改變
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 |
isChatReplayMsg |
是否為聊天重播訊息 | boolean |
範例:
// 聊天消息列表
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
回呼參數: Object 物件,詳細類型說明如下
| 屬性名 | 說明 | 類型 |
|---|---|---|
seconds |
- | number |
範例:
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
回呼參數: Object | undefined
二十五、超出頻道登入限制事件
Event 事件: ChatEvents.OverLoginLimit
回呼參數: Object 物件,詳細類型說明如下
| 屬性名 | 說明 | 類型 |
|---|---|---|
isStartLiveOverLogin |
剛開始直播時, 由於超過頻道人數限制所觸發的RELOGIN | boolean |
