79 lines
1.6 KiB
Markdown
79 lines
1.6 KiB
Markdown
# 心率监测 WebSocket 服务
|
||
|
||
这是一个基于ASP.NET Core的WebSocket服务,用于接收心率监测设备的数据并转发给其他连接的客户端。
|
||
|
||
## 功能
|
||
|
||
- 接收心率数据(包含心率值、时间戳和设备名称)
|
||
- 验证客户端Token确保安全性
|
||
- 向其他所有已连接的客户端广播心率数据(不包含Token)
|
||
|
||
## 技术栈
|
||
|
||
- ASP.NET Core 9.0
|
||
- WebSockets
|
||
- System.Text.Json
|
||
|
||
## 数据格式
|
||
|
||
### 接收的数据格式
|
||
|
||
```json
|
||
{
|
||
"heartRate": 75,
|
||
"timestamp": "2023-04-10T15:30:45.123Z",
|
||
"deviceName": "HeartMonitor-X1",
|
||
"token": "1sZkzBKD3WpRT0eQ9Vk4"
|
||
}
|
||
```
|
||
|
||
### 广播的数据格式
|
||
|
||
```json
|
||
{
|
||
"heartRate": 75,
|
||
"timestamp": "2023-04-10T15:30:45.123Z",
|
||
"deviceName": "HeartMonitor-X1"
|
||
}
|
||
```
|
||
|
||
## 使用方式
|
||
|
||
1. 启动服务
|
||
2. 通过WebSocket连接到 `ws://localhost:5000/ws` 或 `wss://localhost:5001/ws`
|
||
3. 发送包含有效Token的心率数据JSON
|
||
4. 接收来自其他客户端的心率数据广播
|
||
|
||
## 客户端示例代码
|
||
|
||
```javascript
|
||
// 创建WebSocket连接
|
||
const socket = new WebSocket('ws://localhost:5000/ws');
|
||
|
||
// 连接建立时
|
||
socket.onopen = function(e) {
|
||
console.log('连接已建立');
|
||
|
||
// 发送心率数据
|
||
const heartRateData = {
|
||
heartRate: 75,
|
||
timestamp: new Date(),
|
||
deviceName: 'HeartMonitor-X1',
|
||
token: '1sZkzBKD3WpRT0eQ9Vk4'
|
||
};
|
||
|
||
socket.send(JSON.stringify(heartRateData));
|
||
};
|
||
|
||
// 接收消息
|
||
socket.onmessage = function(event) {
|
||
const data = JSON.parse(event.data);
|
||
console.log('收到心率数据:', data);
|
||
};
|
||
|
||
// 连接关闭
|
||
socket.onclose = function(event) {
|
||
console.log('连接已关闭', event);
|
||
};
|
||
```
|