Signaling server

    [스마게 인턴] 시그널링 서버 다중 인스턴스 환경 구축하기

    WebRTC를 연결하기 위한 사용자의 미디어 정보와 ICE 프레임워크를 통해 나온 네트워크 정보들을 중계해주는 역할을 하는 시그널링 서버를 구축했다. 이때 다수의 사용자들이 서버에 접속하기 위한 트래픽을 견디기 위해서는 Scale out이 필요했는데,이를 위해서는 다중 인스턴스를 고려해야했었다. TCP를 연결하는 소켓 서버이기 때문에 다중 인스턴스로 설계할때 어떤 방식으로 설계해야하는지가 정말 중요했다. 만약 제대로 설계하지 않는다면 세션 컨트롤에 많은 문제점이 생겼을 것이다. 우선 우리 팀이 생각한 방식은 아래 그림과 같다. 그림을 설명하자면,각 시그널링 서버의 인스턴스에서 사용자와 연결된 세션 수를 Redis에 캐싱을 하고, Channel 서버에서는 캐시를 확인해서 사용자가 새로운 음성 채팅 룸을 생..

    [WebRTC] Signaling Server ( 시그널링 서버 )

    WebRTC에 대해서 이야기를 해봤는데 WebRTC를 유기적으로 잘 사용하기 위해서는 아래와 같은 서버가 필요하다. Signaling - Always needed NAT Traversal - need for production Media - depends on the app 이번 포스트는 Signaling Server에 대해 다뤄볼 것이다. 😃 Signaling Server란? 이전 글에서 알 수 있듯이 WebRTC란 사용자 간의 P2P Connection을 통해 Object를 교환하는 방식이다. 그런데 그냥 P2P Connection만 존재하면 다 통신이 가능해지는 것일까???? 물론 아니다! 우리는 상대방과 통신을 하기 위해서는 상대방(보낼 주체)이 누구인지를 먼저 파악해야 한다. 이를 위해 Sign..