Kurento Media Server를 VM에 올리기 위해 필요한 방화벽
SDP(Session Description Protocol) : WebRTC에서 스트리밍 미디어의 해상도나 형식, 코덱 등의 멀티미디어 컨텐츠의 초기 인수를 설명하기 위해 채택한 프로토콜
ICE(Interactive Connectivity Establishment) : 두 개의 단말이 P2P 연결을 가능하게 하도록 최적의 경로를 찾아주는 프레임워크
ICE가 STUN,TURN 서버를 이용해 상대방과 연결 가능한 Candidate 가짐(IP주소와 프로토콜, 포트의 조합으로 구성된 연결 가능한 네트워크 주소)
@Override
public void handleTextMessage(WebSocketSession webSocketSession, TextMessage response) throws Exception {
final JsonObject jsonMessage = gson.fromJson(response.getPayload(), JsonObject.class);
switch (jsonMessage.get("type").getAsString()) {
case "joinRoom":
JoinRoomRequest joinRoomRequest = mapper.readValue(response.getPayload(), JoinRoomRequest.class);
signalingService.joinRoom(joinRoomRequest.getUserId(),joinRoomRequest.getChannelId(),webSocketSession);
break;
case "sdpOffer":
SdpOfferRequest sdpOfferRequest = mapper.readValue(response.getPayload(), SdpOfferRequest.class);
signalingService.sdpOffer(webSocketSession,sdpOfferRequest.getUserId(),sdpOfferRequest.getSdpOffer());
break;
case "leaveRoom":
signalingService.leaveRoom(webSocketSession);
break;
case "addIceCandidate":
AddIceCandidateRequest addIceCandidateRequest = mapper.readValue(response.getPayload(), AddIceCandidateRequest.class);
signalingService.addIceCandidate(webSocketSession,addIceCandidateRequest.getUserId(),addIceCandidateRequest.getCandidateInfo());
break;
default:
break;
}
}