uniapp多页面使用websocket
时间: 2023-08-07 11:03:27 浏览: 129
uniapp封装websocket,使用简单,下载即可使用,统一使用json收发消息,区分业务类型
5星 · 资源好评率100%
在 Uniapp 中,可以使用 `uni.createSocket` 方法来创建 WebSocket 连接。由于 Uniapp 是基于 Vue 的,因此可以在 Vue 组件中使用 WebSocket。以下是简单的示例代码:
1. 在 main.js 中添加全局方法:
```javascript
Vue.prototype.$socket = null
Vue.prototype.$initSocket = function(url) {
this.$socket = uni.connectSocket({
url: url
})
}
```
2. 在页面中使用 WebSocket:
```javascript
export default {
mounted() {
this.$initSocket('ws://localhost:8080')
this.$socket.onOpen(() => {
console.log('WebSocket连接已打开!')
})
this.$socket.onError((error) => {
console.log('WebSocket连接打开失败,请检查!', error)
})
this.$socket.onMessage((res) => {
console.log('收到服务器内容:', res)
})
},
methods: {
sendMsg() {
this.$socket.send({
data: 'Hello WebSocket!'
})
}
}
}
```
在上面的例子中,我们定义了 `$socket` 和 `$initSocket` 这两个全局方法,以及在组件的 `mounted` 钩子中初始化 WebSocket 连接,并监听连接状态、错误以及接收到的消息。在 `sendMsg` 方法中,我们可以发送消息到服务器端。
需要注意的是,如果需要在多个页面中使用 WebSocket,最好将全局方法和事件监听器放在一个单独的 Vue 组件中,并在需要使用 WebSocket 的页面中引入该组件即可。
阅读全文