To implement real-time features using WebSockets in Vue.js, you can follow these steps:
vue-socket.io
package:npm install vue-socket.io
import VueSocketIO from 'vue-socket.io';
import SocketIO from 'socket.io-client';
Vue.use(new VueSocketIO({
debug: true,
connection: SocketIO('http://localhost:3000'), // replace with your WebSocket server URL
}));
<template>
<div>
<p>Real-time data: {{ realTimeData }}</p>
<button @click="emitData">Emit Data</button>
</div>
</template>
<script>
export default {
data() {
return {
realTimeData: ''
}
},
mounted() {
this.$socket.on('data', this.handleData);
},
methods: {
emitData() {
this.$socket.emit('data', 'Hello from frontend!');
},
handleData(data) {
this.realTimeData = data;
}
}
}
</script>
In the above example, the mounted
hook registers a listener for the 'data' event from the WebSocket server. When the event is received, it calls the handleData
method which updates the realTimeData
variable and displays it in the template.
The emitData
method emits the 'data' event to the WebSocket server with the message 'Hello from frontend!' when the button is clicked.
Make sure you have a WebSocket server running that can handle these events and emit the appropriate responses.