From 011535a45078d37e49930bd97c48535ed947ef27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B5=ED=9D=AC=20=EA=B9=80?= Date: Sat, 18 Jan 2025 00:42:49 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 22 ++++++++++++++++++++++ src/index.js | 37 +++---------------------------------- src/models/ChatMessage.js | 1 + src/routes/chat.js | 2 +- 4 files changed, 27 insertions(+), 35 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1d33c65 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#ff6433", + "activityBar.background": "#ff6433", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#00ff3d", + "activityBarBadge.foreground": "#15202b", + "commandCenter.border": "#e7e7e799", + "sash.hoverBorder": "#ff6433", + "statusBar.background": "#ff3d00", + "statusBar.foreground": "#e7e7e7", + "statusBarItem.hoverBackground": "#ff6433", + "statusBarItem.remoteBackground": "#ff3d00", + "statusBarItem.remoteForeground": "#e7e7e7", + "titleBar.activeBackground": "#ff3d00", + "titleBar.activeForeground": "#e7e7e7", + "titleBar.inactiveBackground": "#ff3d0099", + "titleBar.inactiveForeground": "#e7e7e799" + }, + "peacock.color": "#ff3d00" +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index c30c8b2..bb9e14f 100644 --- a/src/index.js +++ b/src/index.js @@ -86,42 +86,10 @@ app.use('/v1', compaign); app.use('/v1/chat', chatRoutes); -// io.on('connection', (socket) => { -// console.log(`클라이언트 연결됨: ${socket.id}`); - -// // 클라이언트로부터 메시지 수신 -// socket.on('message', async (data) => { -// console.log('받은 메시지:', data); - -// // MongoDB에 메시지 저장 -// const newMessage = new ChatMessage({ -// username: data.username, -// message: data.message, -// }); - -// try { -// await newMessage.save(); -// // 연결된 모든 클라이언트에게 메시지 브로드캐스트 -// io.emit('message', newMessage); -// } catch (error) { -// console.error('메시지 저장 중 오류:', error); -// } -// }); - -// // 클라이언트 연결 종료 처리 -// socket.on('disconnect', () => { -// console.log(`클라이언트 연결 해제: ${socket.id}`); -// }); -// }); - - io.on('connection', (socket) => { - console.log(`클라이언트 연결됨: ${socket.id}`); - // 사용자 방 참여 - socket.on('join', (email) => { - console.log(`${email} joined room: ${email}`); - socket.join(email); // 사용자를 이메일 기반으로 방에 참여시킴 + socket.on('join', (room) => { + socket.join(room); // 사용자를 이메일 기반으로 방에 참여시킴 }); // 클라이언트로부터 메시지 수신 @@ -132,6 +100,7 @@ io.on('connection', (socket) => { // MongoDB에 메시지 저장 const newMessage = new ChatMessage({ username, + to:targetEmail, message, timestamp: new Date(), }); diff --git a/src/models/ChatMessage.js b/src/models/ChatMessage.js index a00fc85..622a6fc 100644 --- a/src/models/ChatMessage.js +++ b/src/models/ChatMessage.js @@ -2,6 +2,7 @@ const mongoose = require('mongoose'); const ChatMessageSchema = new mongoose.Schema({ username: { type: String, required: true }, + to: { type: String, required: true }, message: { type: String, required: true }, timestamp: { type: Date, default: Date.now }, }); diff --git a/src/routes/chat.js b/src/routes/chat.js index 54e33c8..f47456d 100644 --- a/src/routes/chat.js +++ b/src/routes/chat.js @@ -6,6 +6,7 @@ const router = express.Router(); router.get('/messages', async (req, res) => { try { const { email } = req.query; + if (!email) { return res.status(400).json({ success: false, message: 'Email parameter is required.' }); @@ -14,7 +15,6 @@ router.get('/messages', async (req, res) => { // 이메일 배열로 필터링 const emailArray = email.split(','); const messages = await ChatMessage.find({ username: { $in: emailArray } }).sort({ timestamp: 1 }); - res.json(messages); } catch (error) { res.status(500).json({ success: false, message: error.message });