在线聊天

功能概述
在线聊天模块实现站内即时通讯功能,支持用户之间的实时消息收发、系统通知推送和消息提醒。基于 SignalR 实现消息的实时推送,消息数据存储在数据库中,支持离线消息拉取和未读提醒。依赖 Redis 实现消息的实时转发和在线状态的维护。
使用方法
进入消息页面
在系统导航栏中找到 "消息管理" 进入。
消息分类切换
页面顶部提供三个分类切换:
- 收件箱:收到的消息
- 发件箱:发出的消息
- 系统通知:系统推送的通知
查看消息
- 消息列表显示标题、发件人/收件人、发送时间、是否已读等信息。
- 点击消息行可展开查看详细内容。
- 未读消息点击后自动标记为已读。
发送消息
- 点击 "添加" 按钮,弹出消息编辑窗口。
- 填写消息标题和内容。
- 选择收件人(通过
AdminSelectEntityFilter选择用户)。 - 点击 "保存" 发送。消息通过 SignalR 实时推送给收件人。
回复消息
在收件箱中查看消息时,点击 "回复" 按钮可直接回复发件人。
实时聊天(浮动窗口)
页面右下角的聊天浮动图标(AdminChat 组件)提供更便捷的聊天体验:
- 点击展开聊天窗口
- 左侧显示联系人列表
- 右侧显示聊天内容和输入框
- 支持表情符号
- 未读消息数量角标提醒
界面说明
消息分类
- 收件箱/发件箱/系统通知 三个 Tab 切换
消息列表
- 标题:消息主题
- 发件人/收件人:用户姓名
- 时间:发送时间
- 状态:已读/未读标记
聊天浮动窗口
- 页面右下角浮动图标
- 联系人列表
- 消息历史记录
- 文本输入和发送
相关实体/服务
SysMessage— 消息实体SysMessageUser— 消息用户关联实体AdminMessageService— 消息业务服务AdminChat组件 — 实时聊天 UI- SignalR Hub — 实时推送
- Redis — 消息队列和在线状态管理