그룹통화 만들기(Web)
다수의 참여자가 통화에 참여하는 서비스를 위한 기능입니다. Remon SDK를 이용하여 통화 또는 방송 구현 경험이 있으면 이해에 도움이 됩니다. 통화 또는 방송 튜토리얼을 학습한 후에 그룹통화를 학습하기를 권장합니다.
- 1.그룹통화를 위한 방(room) 만들기
- 2.방의 참여자 목록 조회
- 3.각의 참여자와 연결 수립하기
- 4.방으로부터 참여자 입장(join), 퇴장(leave) 이벤트 수신
- 모든 시작은 Remon 클래스에서 시작합니다. Remon클래스의 객체를 생성하는 방법은 다른 페이지등을 통해 참고하세요.
- Remon객체를 생성하면 바로 방(ROOM)을 개설할 수 있습니다.
remon.createRoom("Room name");
- 위 코드는 'Room name'에 해당하는 방이름으로 그룹 통화방을 개설하는 코드입니다.
- 지정된 videoTag의 local 영상이 해당 방에 송출됩니다. 여기까지는 나의 영상을 Room에 송출하는 것까지 완료되는 것입니다.
- 'room name' 방으로부터 참여자 목록을 조회합니다.
- fetchRooms는 참여자 목록을 담은 배열을 리턴합니다. 배열의 각 항목은 id 속성을 갖고 있습니다.
- 참여자 목록은 앱 사용자 자신을 포함합니다. 나를 포함하여 총 3명이 방에 있으면, 3개의 항목이 조회됩니다.
var searchResult= await remon.fetchRooms("Room name");
searchResult.forEach( ({id}, i) => {
// id에 대한 처리
};
- 앱 사용자 자신의 id를 확인하려면 onConnect 콜백을 이용합니다.
var listener= {
onConnect(chid) {
console.log(`My ID is ${chid} in the room`);
},
}
// 또는, 연결이 진행된 후, getChannelId 메소드를 이용합니다.
// var myid = remon.getChannelId();
// 권장하는 방법은 아니지만, 연결이 진행된 후 Remon 객체에서도 확인할 수 있습니다.
// remon = new Remon({ config, listener });
// var myid = remon.context.channel.id;
- 이제 그룹 통화 방에 속해있는 모든 참여자의 채널id를 확보하였습니다.
- 각 참여자와의 연결은 리모트몬스터의 방송을 이용합니다.
- 각 참여자의 id는 리모트몬스터 방송 채널ID입니다.
- 위에서 조회한 각 참여자의 채널ID에 대해 Remon 객체의 시청 메소드 joinCast를 호출합니다.
- 각 참여자별로 Remon 객체를 만들어야합니다. 하나의 Remon 객체를 이용하면 안 됩니다.
searchResult.forEach( ({id}, i) => {
remon1.joinCast(id);
}
- 그룹통화 중 수시로 참여자가 입장하고 퇴장할 수 있습니다. 참여자의 입장과 퇴장 이벤트 수신은 onRoomEvent 콜백을 이용합니다.
var listener= {
onRoomEvent(evt){
console.log('event type: '+ evt.event); // 'join' or 'leave'
console.log('channel id: '+ evt.channel.id); // 퇴장한 참여자의 ID
}
}
- 현재 지원하는 이벤트 종류는 join과 leave입니다. 이 이벤트를 통해 새롭게 들어온 채널과 종료된 채널을 실시간으로 알 수 있습니다.
자세한 이용 방법은 그룹통화 샘플 앱의 소스코드를 참고하시기 바랍니다.
Last modified 3yr ago