我正在嘗試使用 vuejs 和 socketio 制作一個簡單的聊天應用程式。我想從一個用戶向所有其他用戶廣播一條訊息。我在服務器端有以下代碼來做到這一點:
io.on('connection', socket => {
socket.on('send-message', message => {
console.log('message sent: ' message)
socket.broadcast.emit('receive-message', message)
})
})
在客戶端,我正在通過這種方法收聽該操作:
this.socket.on('receive-message', message => {
this.createMessageHtmlElement(message)
})
我很難知道在哪里放置該方法。放入mounted() 或created() 會使其被一遍又一遍地呼叫。我只想在服務器實際發送訊息時呼叫它。
在 vuejs 專案中放置服務器操作偵聽器的正確方法是什么?
uj5u.com熱心網友回復:
放入mounted() 或created() 會使其被一遍又一遍地呼叫。
this.socket.on是document.addEventListener(docs)的“套接字版本”,因此,您將設定一個函式(回呼),當某個事件發生時(receive-message在您的情況下)將執行該函式。根據createMessageHtmlElement實際執行的操作,您可以this.socket.on輸入created()或mounted()。假設你有一個簡單的應用程式,最好的地方可能是App.vue因為監聽器將在注冊時App.vue注冊(Vue 生命周期)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513351.html
上一篇:Recyclerview選擇位置邊框會出現,未選中邊框不出現-如何在AndroidStudio中進行設計,如高亮位置
