保利威文档中心

幫助中心

模組事件

更新時間:2024-10-10 17:27:10

一、聊天室資訊修改

Event 事件: ChatEvents.ChatInfoChange

回調參數: Object 物件,詳細類型說明如下

屬性名 說明 類型
chatInfo 聊天室資訊 ChatModuleInfo

二、聊天室連線失敗事件

說明: 當斷網或其他因素導致聊天室連線失敗時觸發該事件

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.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

範例:

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);
});
联系客服,在线咨询