diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php index 8067f58..533ea12 100644 --- a/app/Http/Controllers/ChatController.php +++ b/app/Http/Controllers/ChatController.php @@ -122,14 +122,16 @@ class ChatController extends Controller } // 5. 获取历史消息用于初次渲染 - // TODO: 可在前端通过请求另外的接口拉取历史记录,或者直接在这里 attach + // 获取最近的所有消息(由于 Redis list 已限制保留条数,传 0 为拉取所有缓存的记录) + $historyMessages = $this->chatState->getNewMessages($id, 0); // 渲染主聊天框架视图 return view('chat.frame', [ - 'room' => $room, - 'user' => $user, - 'weekEffect' => $this->shopService->getActiveWeekEffect($user), // 周卡特效(登录自动播放) - 'newbieEffect' => $newbieEffect, // 新人入场专属特效 + 'room' => $room, + 'user' => $user, + 'weekEffect' => $this->shopService->getActiveWeekEffect($user), // 周卡特效(登录自动播放) + 'newbieEffect' => $newbieEffect, // 新人入场专属特效 + 'historyMessages' => $historyMessages, // 把历史消息附带给前端 ]); } diff --git a/resources/views/chat/frame.blade.php b/resources/views/chat/frame.blade.php index 414700e..1a35a1d 100644 --- a/resources/views/chat/frame.blade.php +++ b/resources/views/chat/frame.blade.php @@ -103,6 +103,22 @@ @include('chat.partials.scripts') + {{-- 页面初始加载时,渲染自带的历史记录(解决入场欢迎语错过断网的问题) --}} + @if (!empty($historyMessages)) + + @endif {{-- 进房特效自动播放:新人烟花礼包 / 周卡特效 --}} @if (!empty($newbieEffect) || !empty($weekEffect))