logo
0
0
WeChat Login

Gold Monitor

Gold Monitor 是一个实时黄金价格监控工具,可以监控黄金价格的波动,并在价格变化超过设定阈值时通过企业微信机器人发送通知。金价数据来源于中鑫金平台,对标沪金价格。

功能特点

  • 实时监控黄金价格变化
  • 支持设置价格波动阈值,超过阈值时发送通知
  • 通过企业微信机器人发送价格波动通知
  • 保存最近一段时间内的价格数据,用于计算价格波动
  • 支持自动重连机制,确保连接稳定性

技术栈

  • TypeScript
  • Node.js
  • STOMP 协议(通过 @stomp/stompjs
  • WebSocket(通过 sockjs-client)
  • 数据压缩/解压缩(通过 pako)
  • 企业微信机器人 API(通过 weworkbot)

安装

前提条件

  • Node.js (>= 12.x)
  • Yarn 或 npm

安装步骤

  1. 克隆仓库
git clone <repository-url> cd gold-monitor
  1. 安装依赖
yarn install # 或者 npm install
  1. 编译 TypeScript 代码
yarn build # 或者 npm run build

使用方法

  1. 配置企业微信机器人 webhook URL(在 app.ts 中修改)

  2. 启动监控服务

yarn start # 或者 npm start
  1. 使用 PM2 进行进程管理(推荐用于生产环境)
pm2 start .pm2.json

配置选项

你可以通过环境变量配置以下选项:

  • WECOM_BOTID: 企业微信机器人的 webhook key
  • GOLD_MONITOR_SECONDS: 监控时间窗口(秒),默认为3600秒(1小时)
  • GOLD_PRICE_THRESHOLD: 价格波动阈值(元),默认为5元

示例:

# 设置环境变量 export WECOM_BOTID="your-bot-key" export GOLD_MONITOR_SECONDS="1800" # 30分钟 export GOLD_PRICE_THRESHOLD="3" # 3元 # 启动应用 yarn start

你也可以在 Docker 或 PM2 配置中设置这些环境变量。

项目结构

gold-monitor/ ├── src/ │ ├── app.ts # 应用程序入口点,包含主要逻辑 │ └── unzip.ts # 数据解压缩功能 ├── dist/ # 编译后的 JavaScript 文件 ├── node_modules/ # 依赖包 ├── .eslintrc.js # ESLint 配置 ├── .pm2.json # PM2 配置 ├── package.json # 项目配置和依赖 ├── tsconfig.json # TypeScript 配置 └── README.md # 项目文档

核心代码说明

app.ts

应用程序的主入口点,包含以下核心功能:

  • 建立与数据源的 WebSocket 连接
  • 订阅黄金价格数据流
  • 解析和处理接收到的数据
  • 监控价格波动并发送通知
  • 实现自动重连机制

unzip.ts

提供数据解压缩功能:

  • 接收 base64 编码的压缩数据
  • 使用 pako 库解压数据
  • 将解压后的数据转换为可读字符串

贡献指南

  1. Fork 项目
  2. 创建你的特性分支 (git checkout -b feature/amazing-feature)
  3. 提交你的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个 Pull Request

许可证

MIT

About

No description, topics, or website provided.
Language
TypeScript46%
Markdown36.4%
gitignore9.9%
JavaScript6.2%
Others1.5%