在线聊天

chat

功能概述

在线聊天模块实现站内即时通讯功能,支持用户之间的实时消息收发、系统通知推送和消息提醒。基于 SignalR 实现消息的实时推送,消息数据存储在数据库中,支持离线消息拉取和未读提醒。依赖 Redis 实现消息的实时转发和在线状态的维护。

使用方法

进入消息页面

在系统导航栏中找到 "消息管理" 进入。

消息分类切换

页面顶部提供三个分类切换:

  • 收件箱:收到的消息
  • 发件箱:发出的消息
  • 系统通知:系统推送的通知

查看消息

  • 消息列表显示标题、发件人/收件人、发送时间、是否已读等信息。
  • 点击消息行可展开查看详细内容。
  • 未读消息点击后自动标记为已读。

发送消息

  1. 点击 "添加" 按钮,弹出消息编辑窗口。
  2. 填写消息标题和内容。
  3. 选择收件人(通过 AdminSelectEntityFilter 选择用户)。
  4. 点击 "保存" 发送。消息通过 SignalR 实时推送给收件人。

回复消息

在收件箱中查看消息时,点击 "回复" 按钮可直接回复发件人。

实时聊天(浮动窗口)

页面右下角的聊天浮动图标(AdminChat 组件)提供更便捷的聊天体验:

  • 点击展开聊天窗口
  • 左侧显示联系人列表
  • 右侧显示聊天内容和输入框
  • 支持表情符号
  • 未读消息数量角标提醒

界面说明

消息分类

  • 收件箱/发件箱/系统通知 三个 Tab 切换

消息列表

  • 标题:消息主题
  • 发件人/收件人:用户姓名
  • 时间:发送时间
  • 状态:已读/未读标记

聊天浮动窗口

  • 页面右下角浮动图标
  • 联系人列表
  • 消息历史记录
  • 文本输入和发送

相关实体/服务

  • SysMessage — 消息实体
  • SysMessageUser — 消息用户关联实体
  • AdminMessageService — 消息业务服务
  • AdminChat 组件 — 实时聊天 UI
  • SignalR Hub — 实时推送
  • Redis — 消息队列和在线状态管理