uniapp使用websocket案例
时间: 2023-09-05 15:14:26 浏览: 126
以下是一个使用uniapp实现websocket的简单案例:
1. 在`pages`目录下创建一个`websocket`目录,包括`websocket.vue`文件和`websocket.js`文件。
2. `websocket.vue`文件:
```
<template>
<view class="content">
<view class="message">{{ message }}</view>
<button class="btn" @tap="sendMessage">发送消息</button>
</view>
</template>
<script>
import { connect } from './websocket.js'
export default {
data() {
return {
message: ''
}
},
onLoad() {
connect((data) => {
this.message = data
})
},
methods: {
sendMessage() {
connect.send('hello world')
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
.message {
font-size: 24px;
margin-bottom: 20px;
}
.btn {
background-color: #007aff;
color: #fff;
padding: 10px 20px;
border-radius: 10px;
}
</style>
```
`websocket.vue`中包含一个`message`变量和一个发送消息的按钮。在页面加载时,调用`connect`函数连接websocket,并指定回调函数。回调函数用于接收websocket返回的消息并更新`message`变量。当用户点击发送消息的按钮时,调用`connect.send`函数向websocket发送消息。
3. `websocket.js`文件:
```
const url = 'ws://localhost:3000'
let socket = null
function connect(callback) {
socket = new WebSocket(url)
socket.onopen = function() {
console.log('websocket连接成功')
}
socket.onmessage = function(event) {
callback(event.data)
}
socket.onclose = function() {
console.log('websocket连接已关闭')
}
socket.onerror = function(event) {
console.error('websocket连接出错', event)
}
}
function send(message) {
socket.send(message)
}
export { connect, send }
```
`websocket.js`中定义了`connect`函数和`send`函数。`connect`函数用于连接websocket,并指定websocket的回调函数。`send`函数用于向websocket发送消息。
4. 启动websocket服务器。可以使用Node.js的`ws`库创建一个简单的websocket服务器:
```
const WebSocket = require('ws')
const server = new WebSocket.Server({ port: 3000 })
server.on('connection', (socket) => {
console.log('websocket连接成功')
socket.on('message', (message) => {
console.log('接收到消息:', message)
socket.send(`服务器收到消息:${message}`)
})
socket.on('close', () => {
console.log('websocket连接已关闭')
})
socket.on('error', (error) => {
console.error('websocket连接出错:', error)
})
})
```
5. 在微信开发者工具中运行uniapp应用,即可通过websocket发送和接收消息。
阅读全文