[javascript] Socket.io를 사용하여 실시간 회의 시스템을 어떻게 구현할 수 있나요?
아래는 Socket.io를 사용하여 실시간 회의 시스템을 구현하는 예제 코드입니다.
// 서버 측 코드
const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
// 웹 소켓 연결 시 처리 로직
io.on('connection', (socket) => {
// 새로운 참가자가 입장했을 때
socket.on('join', (roomId) => {
socket.join(roomId); // 해당 방에 참가자를 추가
socket.to(roomId).emit('userJoined', socket.id); // 다른 참가자에게 새로운 참가자 알림
});
// 채팅 메시지 전송 시
socket.on('sendMessage', (roomId, message) => {
socket.to(roomId).emit('receiveMessage', message); // 해당 방에 있는 다른 참가자에게 메시지 전달
});
// 참가자가 나갔을 때
socket.on('disconnect', () => {
socket.rooms.forEach((roomId) => {
socket.to(roomId).emit('userLeft', socket.id); // 다른 참가자에게 참가자가 나갔음을 알림
});
});
});
// 서버 시작
server.listen(3000, () => {
console.log('Server started on port 3000');
});
위 코드는 Express.js를 사용하여 Server를 설정하고, Socket.io를 초기화한 뒤 웹 소켓 연결 시 처리 로직을 구현한 부분입니다.
클라이언트 측에서는 Socket.io를 사용하여 서버와 통신하고, 실시간으로 참가자의 입장, 퇴장, 채팅 메시지 전송 등을 알리는 로직을 작성하면 됩니다.
이 예제는 실시간 회의 시스템을 구현하는 것의 기본 로직을 보여주기 위한 것이므로, 실제 시스템에 따라 필요한 기능을 추가해야 합니다.