保利威文档中心

幫助中心

模組事件

更新時間:2026-01-19 09:16:42

一、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
联系客服,在线咨询