Home  >  Article  >  Web Front-end  >  How to use WebSocket to implement chat function in Vue technology development

How to use WebSocket to implement chat function in Vue technology development

WBOY
WBOYOriginal
2023-10-10 08:46:551065browse

How to use WebSocket to implement chat function in Vue technology development

How to use WebSocket to implement chat function in Vue technology development

  1. Introduction
    Nowadays, real-time communication has become an essential feature in many applications one. As an emerging communication protocol, WebSocket is widely used in real-time communication scenarios. This article will introduce how to use WebSocket to implement chat functions in Vue technology development, and provide detailed code examples.
  2. Preparation
    Before we start, we need to make sure that the Vue framework and WebSocket related libraries have been installed.

2.1 Install Vue
Use the following command to install Vue:

npm install vue

2.2 Install the WebSocket client library
Use the following command to install the WebSocket client library:

npm install vue-native-websocket
  1. Create Vue instance
    First, we need to create a WebSocket instance in Vue. In the Vue entry file, introduce the WebSocket module and create a Vue instance.
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')

Here, we set the WebSocket connection address to 'ws://localhost:3000', you can modify it according to the actual situation.

  1. Writing Chat Component
    Next, we need to write a chat component Chat.vue to display the chat interface and process the chat function.
<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>

In the above code, we use the v-for directive to render each chat message to the interface, and bind the content of the input box through the v-model directive. When the send button is clicked, the sendMessage function is called to send the entered message to the server.

  1. Start the WebSocket server
    In actual development, we need to build a WebSocket server to receive and send messages. Here we take the ws library using Node.js as an example to briefly demonstrate the server building process.
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)
    })
  })
})

In the above code, we listen to port 3000. When a client connects, the connection event will be triggered. When a message sent by a client is received, the message is broadcast to all connected clients.

  1. Compile and run
    At this point, we have completed the code writing for using WebSocket to implement the chat function in Vue technology development. Now, we can compile and run our Vue application using the following command:
npm run serve

Visit http://localhost:8080 in the browser to see the chat interface.

  1. Summary
    This article introduces how to use WebSocket to implement the chat function in Vue technology development, and provides detailed code examples. Through the real-time communication capabilities of WebSocket, we can easily build powerful real-time chat applications. I hope this article can be helpful to everyone!

The above is the detailed content of How to use WebSocket to implement chat function in Vue technology development. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn