js
io.on("connection", (socket) => {
// 클라이언트가 연결되면 실행됨
console.log("클라이언트 연결됨:", socket.id);
// 이벤트 수신
socket.on("이벤트명", (data) => {
// 처리 로직
});
// 이벤트 전송
socket.emit("이벤트명", payload);
})
js
const socket = io("<http://localhost:3000>");
// 서버로 이벤트 전송
socket.emit("join-room", roomId);
// 서버에서 이벤트 수신
socket.on("game-event", (data) => {
console.log("서버에서 받은 이벤트:", data);
});
메서드 | 설명 |
---|---|
socket.on(event, cb) |
클라이언트/서버에서 특정 이벤트 수신 |
socket.emit(event, data) |
이벤트 전송 (자기 자신 포함) |
socket.to(roomId).emit(...) |
특정 방의 다른 클라이언트들에게 메시지 전송 |
socket.join(roomId) |
클라이언트를 특정 방에 조인 |
socket.leave(roomId) |
클라이언트를 방에서 나가게 함 |
항목 | 내용 |
---|---|
Runtime | Node.js |
Realtime | Socket.IO |
DB | Firebase Firestore |
배포 | AWS EC2 |
join-room
으로 방 입장game-event
채널로 통일type
기준으로 처리 후, 대상에게 emit
Socket.IO 서버를 초기화하고, CORS를 허용한 상태로 클라이언트 연결을 대기
js
const io = new Server(httpServer, {
cors: { origin: "*" }
});
io.on("connection", (socket) => {
console.log("클라이언트 연결됨:", socket.id);
});
join-room
)클라이언트가 특정 방에 입장하면 socket.join(roomId)를 통해 방에 참여시킴.