이번 프로젝트에서는 Express와 Socket.io를 통합하여 간단한 실시간 통신 환경을 구현했습니다. 프로젝트의 기본 구조와 각 부분에 대한 설명을 아래에 정리했습니다.
이 프로젝트에서는 Express.js를 사용하여 정적 파일을 제공하고, Socket.io를 사용하여 웹 소켓(WebSocket) 연결을 관리했습니다. 프로젝트의 기본 구조는 Express 서버가 HTML 파일을 제공하고, HTML 파일 내의 JavaScript가 Socket.io를 통해 웹 소켓 서버와 상호 작용하는 방식으로 구성됩니다.
basics.js이 파일은 Express 서버와 Socket.io 서버를 설정합니다. 코드는 다음과 같습니다
const express = require("express");
const app = express();
const socketio = require("socket.io");
app.use(express.static(__dirname + "/public"));
const expressServer = app.listen(8000);
const io = socketio(expressServer);
io.on("connection", (socket) => {
console.log(socket.id, "has connected");
socket.emit("messageFromServer", { data: "Welcome to the socket server!" });
socket.on('messageFromClient', (data) => {
console.log("Data", data);
});
});
/public 디렉터리의 정적 파일을 제공했습니다.connection 이벤트가 발생하며, 연결 로그를 남기고 클라이언트에게 환영 메시지를 전송합니다.messageFromClient 이벤트로 전송된 메시지를 수신하고, 데이터를 로그에 기록합니다.이 코드는 기본적인 Socket.io 서버를 설정하여 연결된 클라이언트와 실시간으로 통신할 수 있는 환경을 구성합니다.
basics.html이 HTML 파일은 클라이언트 측에서 Socket.io 스크립트를 통해 웹 소켓 서버와 상호 작용합니다. 아래 코드를 참고하세요
<script src="socket.io/socket.io.js"></script>
<script>
const socket = io("http://localhost:8000");
console.log(socket);
socket.on("connect", () => {
console.log(socket.id);
socket.on("messageFromServer", (data) => {
console.log(data);
});
socket.emit('messageFromClient', {data: "Hello, from the browser!"});
});
</script>
messageFromClient 메시지를 전송합니다.프로젝트를 실행하려면
1. 서버를 시작하려면 node basics.js 명령어를 실행합니다.
2. 브라우저에서 basics.html 파일을 엽니다.
3. 서버와 클라이언트에서 실시간으로 메시지를 주고 받는 것을 콘솔 로그를 통해 확인 할 수 있습니다.