본문 바로가기
IT 인터넷

Node.js에서 Socket.IO를 사용할 때 CORS 이슈 해결 방법

by 곰달달 2024. 5. 24.

 

웹 애플리케이션에서 실시간 양방향 통신을 구현하기 위해 Socket.IO를 사용할 때, 브라우저의 보안 정책으로 인해 CORS(Cross-Origin Resource Sharing) 이슈가 발생할 수 있다.

 

이는 다른 도메인에서 오는 요청을 브라우저가 차단하기 때문이다.

 

이 문제를 해결하기 위해서는 Socket.IO 서버와 Express 앱 모두에서 CORS를 허용하도록 설정해야 한다.

 

아래 코드를 통해 이를 구현할 수 있다.

 

const io = socketIo(server, {
    cors: {
        origin: '*', 
        credentials: true
    }
});

app.use(cors({
    origin: '*',
    credentials: true
}));

 

첫 번째 코드 블록은 Socket.IO 서버 인스턴스를 생성할 때 cors 옵션을 설정한다.

 

origin: '*'는 모든 출처(origin)에 대해 CORS를 허용하며, credentials: true는 인증 정보(쿠키 등)를 포함한 요청을 허용한다.

 

 

두 번째 코드 블록은 Express 앱에서 cors 미들웨어를 사용하여 CORS를 설정한다.

 

여기서도 마찬가지로 모든 출처와 인증 정보 요청을 허용한다.

 

이렇게 설정하면 Socket.IO 연결 및 통신 시 CORS 이슈가 해결되어 404 Not Found 오류가 발생하지 않을 것이다.