21 lines
501 B
TypeScript
21 lines
501 B
TypeScript
|
export function useWebSocket() {
|
||
|
const { $ws } = useNuxtApp()
|
||
|
const messages = ref<any[]>([])
|
||
|
|
||
|
// 监听消息
|
||
|
const onMessage = (callback: (data: any) => void) => {
|
||
|
const handler = (event: CustomEvent) => callback(event.detail)
|
||
|
window.addEventListener('ws-message', handler as EventListener)
|
||
|
|
||
|
// 返回清理函数
|
||
|
return () => {
|
||
|
window.removeEventListener('ws-message', handler as EventListener)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
ws: $ws,
|
||
|
messages,
|
||
|
onMessage
|
||
|
}
|
||
|
}
|