websocket使用案例
时间: 2024-06-20 20:01:45 浏览: 66
WebSocket是一种在单个TCP连接上进行全双工通信的协议,常用于实现实时双向数据传输,比如在线聊天、游戏、股票交易、文件协作编辑等应用场景。以下是WebSocket的一些典型使用案例:
1. **实时通信应用**:如聊天应用(包括团队协作工具和社交网络),WebSocket使得用户之间能即时发送消息,无需刷新页面。
2. **在线游戏**:玩家与服务器之间的实时交互,如位置更新、游戏状态同步等,WebSocket确保了低延迟。
3. **金融交易**:股票市场推送,期货交易的实时数据推送,需要实时更新信息。
4. **物联网(IoT)**:设备与云端的双向通信,如智能家居控制系统的实时状态更新。
5. **Web应用程序更新**:一些现代Web应用使用WebSocket来推送更新通知,让用户无需刷新页面即可获取新内容。
6. **文件共享与协作**:实时编辑文档或代码,用户改动的部分会立即同步给其他协作者。
相关问题
uniapp使用websocket案例
以下是一个使用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发送和接收消息。
node使用websocket案例
下面是一个使用 Node.js 和 WebSocket 实现简单聊天室的案例:
1. 首先安装 `ws` 模块:
```
npm install ws
```
2. 创建一个 `server.js` 文件,引入 `ws` 模块,并创建 WebSocket 服务器:
```javascript
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
console.log('Client connected');
ws.on('message', function incoming(message) {
console.log('Received: %s', message);
// 广播收到的消息给所有客户端
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
});
ws.on('close', function close() {
console.log('Client disconnected');
});
});
```
3. 运行 `server.js` 文件:
```
node server.js
```
4. 在浏览器中打开 `index.html` 文件,使用 WebSocket 连接到服务器:
```javascript
const socket = new WebSocket('ws://localhost:8080');
socket.onopen = function() {
console.log('Connected to server');
};
socket.onmessage = function(event) {
console.log('Received: ' + event.data);
};
socket.onclose = function(event) {
console.log('Disconnected from server');
};
```
5. 发送消息到服务器:
```javascript
socket.send('Hello, server!');
```
6. 服务器收到消息后,广播给所有连接的客户端。
这样就完成了一个简单的 WebSocket 聊天室。