summaryrefslogtreecommitdiff
path: root/src/session.cpp
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-03-13 18:54:47 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-03-20 23:45:00 +0800
commit80ba94e84ed4f402862725bff3569e5bc563f5ea (patch)
treedda210f0988b88dca47683bc26fde1c000cdba90 /src/session.cpp
parent41d19c410676def2223b59a19da9f6f3cf49a3f2 (diff)
feat(session): resume history for new client or rejoin
Diffstat (limited to 'src/session.cpp')
-rw-r--r--src/session.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/session.cpp b/src/session.cpp
index 2a25db2..8991b52 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -91,7 +91,13 @@ CSession::SRecvData CSession::read(const std::string &msg) {
void CSession::run() {
onConnect();
- registerSession() ? recvLoop() : log(LOG, "Client {} exited without even registering", m_ip);
+ if (registerSession()) {
+ // g_pSessionManager->broadcast(g_pChatManager->getChat());
+ for (const auto &chat : g_pChatManager->getChat())
+ write(g_pChatManager->fmtBroadcastMessage(chat));
+ recvLoop();
+ } else
+ log(LOG, "Client {} exited without even registering", m_ip);
g_pSessionManager->removeSession(self);
}