VimPlugin.ts 975 B

12345678910111213141516171819202122232425262728293031323334
  1. import { chatViewPlugins, messageEventPlugins, messageViewPlugins } from './video'
  2. import type VideoSendInfo from "@/plugins/video/mode/VideoSendInfo";
  3. const VimPlugin = {
  4. homePlugins: [],
  5. chatViewPlugins: () => {
  6. return [...chatViewPlugins()]
  7. },
  8. //消息展示插件
  9. messageViewPlugins: () => {
  10. return [...messageViewPlugins()]
  11. },
  12. //消息调用插件
  13. messageEventPlugins: () => {
  14. return [...messageEventPlugins()]
  15. },
  16. // 渲染消息展示插件
  17. renderMessage(type: string) {
  18. const plugin = VimPlugin.messageViewPlugins().find((p) => p.messageType === type)
  19. if (plugin) {
  20. return plugin.renderMessage()
  21. }
  22. return null
  23. },
  24. //收到消息的处理函数
  25. messageListener: (sendInfo: VideoSendInfo<any>) => {
  26. console.log('messageListener');
  27. const plugin = VimPlugin.messageEventPlugins().find((p) => p.code === sendInfo.code)
  28. if (plugin) {
  29. plugin.listener(sendInfo)
  30. }
  31. }
  32. }
  33. export default VimPlugin