[B-singroom]프로젝트 빌딩 1 - 프로젝트 개요(Electron과 1:N WebRTC)

Gomi·2021년 12월 29일
0

Bsingroom 프로젝트

목록 보기
2/6
post-thumbnail

 지금부터 음성채팅 및 문자채팅이 가능한 데스크톱 앱의 메이킹 히스토리를 설명하려 한다. 보다보면 알겠지만,

정확히는 노래방앱은 아니고, 라디오 채팅방 정도로 생각해주면 좋을 것 같다.

디자인에 대해서는 따로 언급하지 않고 기능 구현에 집중한다.


🛫 프로젝트 개요


 다소 난잡하고 기능하지않는 요소도 있지만 코드 개선 전의 프로그램 시연 화면이다. 닉네임과 아이콘을 선택해 유저 인스턴스를 생성하고 입장할 수 있다. 입장한 뒤에는 서버 소켓과 통신하여 생성된 채팅방 확인 및 입장, 채팅방 생성이 가능하다.

 문자채팅은 다음과 같이 이벤트 발생 시 서버와 소켓통신을 통해 채팅창에 뿌려진다. 참고할 자료도 많고 구현도 간단하다.

 가장 힘들 것으로 생각했던 것은 음성채팅인데, 1:1 peer to peer 연결은 깊이 들어가면 네트워크 관련 지식이 꽤나 필요하지만, 따라해볼 수 있는 자료들이 많이 있다. 하지만 그림처럼 방에 5명이 있어 5명과 대화를 해야하는 상황에서는 서비스 할 내용에 따라 구현할 수 있는 방식이 다양하다.

 그림의 방식은 프로젝트에 사용된 P2P 방식이고, 실시간 미디어 스트리밍 방식은 이 외에도 SFU, MCU 등이 있다. P2P 방식의 구현은 1:1과 N:N이 크게 다르지 않았다. 실제 구현하는데는 시간이 꽤나 걸렸지만, 그냥 방에 들어오는 사람마다 1:1 연결을 해주는거라 개념적으로는 간단하다. '이렇게 하면 되지 않을까?' 만으로 꽤 그럴듯하게 연결 되었고 5명이 음성으로만 테스트 했을 때는 실시간성에 거의 문제가 없었다.

profile
터키어 배운 롤 덕후

0개의 댓글