Skip to content

Allenlee2013/NotificationAssistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

发布订阅通知软件

公司局域网内的发布订阅通知系统,支持实时消息和定时提醒。

架构

  • 服务端: Node.js + WebSocket + Express
  • 客户端: Electron

功能特性

服务端

  • 接收发布、订阅请求
  • 处理消息分发
  • 支持定时消息(指定时间发送)
  • 用户认证(用户名密码登录)
  • 消息持久化存储
  • 自动定时保存数据
  • 操作日志记录
  • 跨平台部署

客户端

  • 发布立即消息和定时消息
  • 订阅相关主题
  • 实时接收消息提醒
  • 桌面系统通知
  • 编辑/删除自己的定时消息
  • 未读/已读消息分类
  • 待办消息独立展示
  • 断线自动重连(30分钟超时)
  • 配置自动保存
  • 跨平台桌面应用(Windows/Mac/Linux)
  • 支持常驻后台运行

快速开始

服务端

cd server
npm install

配置服务端(复制示例配置并修改):

cp config.json.example config.json
# 编辑 config.json,添加实际用户信息

启动服务端:

npm start

服务端默认运行在:

客户端

cd client
npm install
npm start

使用说明

  1. 配置服务端用户:复制 config.json.exampleconfig.json,添加用户列表
  2. 启动服务端:cd server && npm start
  3. 启动客户端:cd client && npm start
  4. 输入用户名和密码登录
  5. 订阅感兴趣的主题
  6. 发布消息或设置定时消息

配置说明

服务端配置(config.json)

{
  "server": {
    "port": 3000,              // 服务器端口
    "host": "0.0.0.0"          // 监听地址
  },
  "log": {
    "enable": true,             // 是否启用日志
    "dir": "./logs",            // 日志目录
    "maxFiles": 30              // 保留日志天数
  },
  "storage": {
    "enable": true,            // 是否启用数据持久化
    "dir": "./data",           // 数据存储目录
    "autoSaveInterval": 5       // 自动保存间隔(分钟)
  },
  "users": [                   // 用户列表
    {
      "username": "用户名",
      "password": "密码"
    }
  ]
}

客户端配置

客户端配置自动保存到本地,包括:

  • 服务器地址
  • 用户名
  • 密码
  • 自动订阅的主题

数据持久化

服务端

  • 消息历史: data/messages.json - 所有消息记录
  • 定时消息: data/scheduled-messages.json - 定时消息列表
  • 日志文件: logs/server-YYYY-MM-DD.log - 每日日志
  • 自动保存: 每 5 分钟自动保存一次数据
  • 关闭保存: 服务器关闭时保存所有数据

客户端

配置文件由 Electron 自动管理,重启应用后自动加载上次配置并尝试自动连接。

自动重连机制

  • 断线后自动尝试重连
  • 重连间隔:3 秒
  • 最大重连时长:30 分钟
  • 主动断开不触发重连
  • 重连期间显示进度和提示

安全说明

  • config.json 包含敏感信息,已加入 .gitignore
  • data/ 目录包含运行时数据,已加入 .gitignore
  • logs/ 目录包含操作日志,已加入 .gitignore
  • 请勿将 config.json 提交到代码仓库

消息分类

  • 未读消息:即时消息和到时的定时消息,标记为未读
  • 已读消息:点击阅读后移入历史记录
  • 待办消息:未到时的定时消息,独立显示在上方卡片中

定时消息功能

  • 设置未来时间发送消息
  • 到时自动发布并通知所有订阅用户
  • 编辑自己的定时消息
  • 删除自己的定时消息
  • 服务端重启后自动恢复未过期的定时任务

About

发布订阅通知软件

Resources

License

Stars

Watchers

Forks

Contributors