Skip to content

Commit

Permalink
update, 아무나채팅 기능 삭제, 분기처리
Browse files Browse the repository at this point in the history
  • Loading branch information
dana8123 committed Jul 22, 2021
1 parent db1d56b commit 87e14cb
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions socket.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,21 @@ module.exports = (server, app) => {
methods: ["GET", "POST"],
},
});
app.set("io", io);
// namespace

const chatSpace = io.of("/chat");
const globalSpace = io.of("/global");
//server-side

//logic
chatSpace.on("connection", async (socket) => {
// 접속 이후 이하의 코드가 실행됨
//클라이언트에게서 join이라는 emit을 받으면
// user join
socket.on("join", async (data) => {
const req = socket.request;
const {
headers: { referer },
} = req;
//console.log("===join====", data); //
const { room, user } = data;
// room에 join되어 있는 클라이언트에게 메시지를 전송한다.
const { room, username } = data;
socket.join(room); //특정 방에 접속하는 코드
const chats = await Chat.find({ room });
// room에 join된 클라이언트들에게 chats을 보낸다.
chatSpace.to(room).emit("load", chats);
});
//send emit으로 받는 데이터
// send message
socket.on("send", async (data) => {
const { room } = data;
const content = new Chat({
Expand All @@ -43,9 +36,12 @@ module.exports = (server, app) => {
msg: data.msg,
user: data.username,
time: Date.now(),
// TODO: url에 닉네임이 꼭 들어가야하는건지 프론트에 확인하기. 다른방식으로 줄 수 있는 방법 찾기
});
await content.save();
if (data.room === `${undefined}-${undefined}-${undefined}`) {
content.msg = "거래 이후 채팅 가능합니다.";
} else {
await content.save();
}
// 저장한 데이터를 클라이언트에게 receive라는 emit으로 전송
chatSpace.to(room).emit("receive", content);
//접속해제 시 방을 떠나는 코드
Expand All @@ -59,6 +55,7 @@ module.exports = (server, app) => {
//global socket 알림, 채팅 목록
globalSpace.on("connection", function (socket) {
socket.on("globalSend", async function (data) {
console.log(data);
globalSpace.emit("globalReceive", data);
});
});
Expand Down

0 comments on commit 87e14cb

Please sign in to comment.