<script setup>
const messages = ref([])
const inputMessage = ref('')
let ws
const connectWebSocket = () => {
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'
ws = new WebSocket(`${protocol}`)
ws.onopen = () => {
messages.value.push('Connecté au serveur WebSocket')
}
ws.onmessage = (event) => {
messages.value.push(`${event.data}`)
}
ws.onclose = () => {
messages.value.push('Déconnecté du serveur WebSocket')
}
}
const sendMessage = () => {
if (inputMessage.value && ws.readyState === WebSocket.OPEN) {
ws.send(inputMessage.value)
inputMessage.value = ''
}
}
onMounted(() => {
connectWebSocket()
})
onUnmounted(() => {
if (ws) ws.close()
})
</script>
<template>
<div>
<h2>WebSocket Demo</h2>
<ul>
<li
v-for="(message, index) in messages"
:key="index"
>{{ message }}</li>
</ul>
<input
v-model="inputMessage"
@keyup.enter="sendMessage"
placeholder="Entrez un message"
>
<button @click="sendMessage">Envoyer</button>
</div>
</template>
Failed to construct 'WebSocket': The URL 'ws:' is invalid.
<style lang="css" scoped></style> @dawn holly