WebSocket を使用して Vue テクノロジー開発にチャット機能を実装する方法
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 をリッスンします。クライアントが接続すると、接続イベントがトリガーされます。クライアントによって送信されたメッセージが受信されると、そのメッセージは接続されているすべてのクライアントにブロードキャストされます。
npm run serve
ブラウザで http://localhost:8080 にアクセスして、チャット インターフェイスを確認します。
以上がVue技術開発でWebSocketを使ってチャット機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。