一、业务需求
- 商品详情点击私信卖家,自动建立双方聊天会话;
- 实时收发文字消息,消息气泡区分发送方 / 接收方;
- 打开聊天窗口加载双方历史聊天记录;
- 关闭页面断开连接,刷新页面自动重连,历史消息永久保存。
二、后端核心代码
- ChatServer 服务端点,ConcurrentHashMap 保存在线用户会话
- 历史消息查询接口,根据双方用户 id 分页查询聊天记录
三、前端聊天页面实现
- 封装 ws 工具,页面加载初始化连接,携带当前登录用户 id;
- 聊天窗口左侧展示对方信息、关联商品,右侧消息气泡;
- 输入框回车发送消息,消息列表自动滚动到底部;
- 页面挂载时调用接口加载历史聊天记录。
核心逻辑讲解
- 点对点通讯:通过用户 id 匹配接收人,仅目标用户收到消息,不会全员广播;
- 消息持久化:无论用户是否在线,消息全部存入数据库,上线后可查看历史记录;
- 心跳重连解决页面刷新、网络波动导致的连接中断问题。