Files
ebiz-dify-ai/web/utils/message-channel.ts
Huangzhe 1ace631d85 feat(web): 添加 iframe 通信支持
为应用添加 iframe 嵌入功能的通信支持
2025-04-30 16:37:31 +08:00

27 lines
764 B
TypeScript

// 定义一个全局的 MessageChannel 用于 iframe 通信
let port
export function activeMessageChannel() {
// 只监听一次初始化消息,接收到后自动移除监听器
window.addEventListener('message', function initHandler(event) {
console.log('尝试接收初始化消息:', event.data)
console.log('接收到初始化消息,设置端口')
port = event.ports[0]
// 设置端口消息处理函数
port.onmessage = (msgEvent) => {
console.log('接收到worker消息:', msgEvent.data)
}
Object.defineProperty(globalThis, 'port', {
value: port,
})
// 初始化完成后移除这个事件监听器
window.removeEventListener('message', initHandler)
}, /* {
once: true,
} */)
}