VUE的websocket通道
时间: 2023-08-25 07:17:38 浏览: 91
在Vue中使用WebSocket通道可以实现与服务器实时双向通信。你可以使用Vue的插件vue-native-websocket来简化WebSocket的使用。以下是使用vue-native-websocket的示例:
1. 安装vue-native-websocket插件:
```shell
npm install vue-native-websocket
```
2. 在Vue项目的入口文件(如main.js)中引入并注册插件:
```javascript
import VueNativeSock from 'vue-native-websocket';
Vue.use(VueNativeSock, 'ws://localhost:8080', {
format: 'json',
});
```
这里指定WebSocket服务器的URL为'ws://localhost:8080',可以根据实际情况修改。
3. 在Vue组件中使用WebSocket:
```vue
<template>
<div>
<div v-for="message in messages" :key="message.id">
{{ message.text }}
</div>
<input v-model="newMessage" @keyup.enter="sendMessage" placeholder="Type a message">
</div>
</template>
<script>
export default {
data() {
return {
newMessage: '',
messages: [],
};
},
methods: {
sendMessage() {
this.$socket.send(this.newMessage);
this.newMessage = '';
},
},
mounted() {
// 监听WebSocket消息
this.$options.sockets.onmessage = (event) => {
const message = JSON.parse(event.data);
this.messages.push(message);
};
},
};
</script>
```
在上面的示例中,通过`Vue.use(VueNativeSock, 'ws://localhost:8080', { format: 'json' })`语句将WebSocket插件注册到Vue中,并指定了WebSocket服务器的URL和消息的格式。
在Vue组件中,`this.$socket`提供了WebSocket实例,可以使用`send`方法发送消息到服务器。同时,通过监听`this.$options.sockets.onmessage`事件来处理接收到的WebSocket消息,并将其添加到`messages`数组中,在模板中遍历显示出来。
这样,你就可以在Vue中使用WebSocket通道进行实时双向通信了。记得根据实际情况修改WebSocket服务器的URL和其他配置参数。
阅读全文