Vue技術開發中如何使用WebSocket實作聊天功能
2.1 安裝Vue
使用下列指令安裝Vue:
npm install vue
2.2 安裝WebSocket客戶端程式庫
使用下列指令安裝WebSocket用戶端程式庫:
npm install vue-native-websocket
import Vue from 'vue' import VueNativeSock from 'vue-native-websocket' Vue.use(VueNativeSock, 'ws://localhost:3000', { connectManually: true, // 手动连接 reconnection: true, // 自动重连 reconnectionAttempts: 5, // 重连尝试次数 }) new Vue({ render: h => h(App), }).$mount('#app')
這裡,我們將WebSocket的連接位址設定為'ws://localhost:3000',你可以根據實際情況進行修改。
<template> <div> <div v-for="message in messages" :key="message.id">{{ message.content }}</div> <input v-model="inputMessage"> <button @click="sendMessage">发送</button> </div> </template> <script> export default { data() { return { messages: [], inputMessage: '', } }, mounted() { this.$options.sockets.onmessage = (event) => { const message = JSON.parse(event.data) this.messages.push(message) } this.$options.sockets.connect() // 手动连接WebSocket }, methods: { sendMessage() { const message = { content: this.inputMessage, } this.$options.sockets.send(JSON.stringify(message)) this.inputMessage = '' }, }, } </script>
在上面的程式碼中,我們使用v-for指令將每個聊天資訊渲染到介面上,並透過v-model指令綁定輸入框的內容。點擊傳送按鈕時,呼叫sendMessage函數會將輸入的訊息傳送到伺服器。
const WebSocket = require('ws') const wss = new WebSocket.Server({ port: 3000 }) wss.on('connection', (ws) => { ws.on('message', (message) => { wss.clients.forEach((client) => { client.send(message) }) }) })
在上面的程式碼中,我們監聽3000端口,當有客戶端連接上來時,會觸發connection事件。當接收到客戶端發送的訊息時,將訊息廣播給所有連接的客戶端。
npm run serve
在瀏覽器中造訪http://localhost:8080,即可看到聊天介面。
以上是Vue技術開發中如何使用WebSocket實現聊天功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!