欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue中websocket私聊

黃文隆2年前10瀏覽0評論

在web應用程序中,websocket協議是實時通信的一種重要方式。使用websocket技術可以實現實時通信,例如聊天室。在Vue中,使用websocket技術實現私聊也是一種非常實用的功能。

要實現Vue中的websocket私聊,首先需要使用Vue CLI創建一個新項目。

$ vue create vue-websocket-chat

使用CLI創建項目后,我們需要安裝vue-socket.io和socket.io-client來實現客戶端和服務端之間的通信。

$ npm install vue-socket.io socket.io-client --save

接下來,在main.js文件中導入創建Vue實例的代碼,并啟用websocket連接。

import Vue from 'vue'
import App from './App.vue'
import VueSocketIO from 'vue-socket.io'
import socketio from 'socket.io-client'
const socket = socketio('http://localhost:3000')
Vue.use(new VueSocketIO({
debug: true,
connection: socket
}))
new Vue({
render: h =>h(App),
}).$mount('#app')

接著,在App.vue文件中實現私聊的功能。我們可以在App.vue文件中創建一個input框,使用戶可以輸入私聊消息。我們還可以使用socket.emit方法向服務端發送私聊消息。服務端收到私聊消息后,通過socket.on方法向目標用戶發送私聊消息。最后,我們需要將私聊消息展示在界面上。

<template><div><div v-for="(msg, index) in messages" :key="index">{{ msg }}
</div><input v-model="privateChatMessage"/><button @click="sendPrivateMessage">Send</button></div></template><script>export default {
data() {
return {
messages: [],
privateChatMessage: ''
}
},
methods: {
sendPrivateMessage() {
const username = prompt('請輸入目標用戶的用戶名')
const message = this.privateChatMessage
this.$socket.emit('private message', {
username,
message
})
this.privateChatMessage = ''
}
},
sockets: {
privateMessage(data) {
this.messages.push(data)
}
}
}
</script>

最后,我們在服務端中實現私聊功能。服務端監聽客戶端發送的私聊消息,再向目標用戶發送私聊消息。

io.on('connection', (socket) =>{
socket.on('private message', (data) =>{
const targetSocket = getClientByUsername(data.username)
if (targetSocket) {
targetSocket.emit('private message', data.message)
} else {
socket.emit('error', '目標用戶不存在')
}
})
})

在getClientByUsername方法中,我們需要根據用戶名查找目標用戶所對應的socket對象,然后再向該對象發送私聊消息。

const getClientByUsername = (username) =>{
const clients = io.sockets.clients().connected
for (let socketId in clients) {
if (clients[socketId].username === username) {
return clients[socketId]
}
}
return null
}

以上就是Vue中使用websocket實現私聊的完整流程。