Remove unused debateId parameter from useWebSocket composable since debate mode has been completely removed. Update CollaborativeSession component to use simplified signature. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
76 lines
1.4 KiB
JavaScript
76 lines
1.4 KiB
JavaScript
import { ref, onUnmounted } from 'vue'
|
|
|
|
export function useWebSocket(sessionId = null) {
|
|
const ws = ref(null)
|
|
const connected = ref(false)
|
|
const messages = ref([])
|
|
|
|
const WS_URL = import.meta.env.VITE_WS_URL || 'ws://localhost:3000'
|
|
|
|
function connect() {
|
|
let url = WS_URL
|
|
if (sessionId) {
|
|
url += `?sessionId=${sessionId}`
|
|
}
|
|
|
|
ws.value = new WebSocket(url)
|
|
|
|
ws.value.onopen = () => {
|
|
connected.value = true
|
|
console.log('WebSocket connected')
|
|
}
|
|
|
|
ws.value.onmessage = (event) => {
|
|
try {
|
|
const data = JSON.parse(event.data)
|
|
messages.value.push(data)
|
|
} catch (error) {
|
|
console.error('WebSocket message parse error:', error)
|
|
}
|
|
}
|
|
|
|
ws.value.onerror = (error) => {
|
|
console.error('WebSocket error:', error)
|
|
}
|
|
|
|
ws.value.onclose = () => {
|
|
connected.value = false
|
|
console.log('WebSocket disconnected')
|
|
}
|
|
}
|
|
|
|
function disconnect() {
|
|
if (ws.value) {
|
|
ws.value.close()
|
|
ws.value = null
|
|
}
|
|
}
|
|
|
|
function send(data) {
|
|
if (ws.value && connected.value) {
|
|
ws.value.send(JSON.stringify(data))
|
|
}
|
|
}
|
|
|
|
function subscribe(params) {
|
|
send({
|
|
type: 'subscribe',
|
|
...params
|
|
})
|
|
}
|
|
|
|
onUnmounted(() => {
|
|
disconnect()
|
|
})
|
|
|
|
return {
|
|
ws,
|
|
connected,
|
|
messages,
|
|
connect,
|
|
disconnect,
|
|
send,
|
|
subscribe
|
|
}
|
|
}
|