使用websocket+vue写一个小demo
时间: 2024-01-15 15:03:25 浏览: 33
好的,我可以为你提供一个使用 WebSocket 和 Vue 实现的简单示例。
首先,你需要安装 `vue-socket.io` 包,它可以让你在 Vue 中方便地使用 WebSocket:
```
npm install vue-socket.io
```
然后,在你的 Vue 组件中引入 `vue-socket.io`:
```
import VueSocketIO from 'vue-socket.io'
export default {
...
components: {
...
VueSocketIO,
},
...
}
```
接着,你可以在组件的 `mounted()` 钩子函数中创建一个 WebSocket 连接:
```
mounted() {
this.$socket = io('ws://localhost:3000')
this.$socket.on('connect', () => {
console.log('连接成功')
})
this.$socket.on('disconnect', () => {
console.log('连接断开')
})
}
```
在这里,我们使用了 `io()` 函数来连接 WebSocket 服务器,并使用 `on()` 函数监听连接和断开事件。
接下来,你可以使用 `send()` 函数向服务器发送消息,或者使用 `on()` 函数监听服务器发送的消息:
```
sendMessage() {
this.$socket.send('这是一条消息')
},
mounted() {
...
this.$socket.on('message', (message) => {
console.log('收到消息:', message)
})
...
}
```
这就是使用 WebSocket 和 Vue 实现的一个简单示例。希望这对你有帮助。
阅读全文
相关推荐















