Overview

  • Remon클래스는 가장 핵심이 되는 클래스로서 다음과 같은 메소드를 제공합니다.

    // 생성자
    class Remon({config:config, listener:listener})
  • Config 정보, 콜백메소드 처리를 위한 Listener를 입력값으로 넣으면 원격의 리모트몬스터 서버와 연결이 됩니다.

  • 연결이 완료되면 listener의 onInit메소드와 onStateChange메소드가 호출됩니다.

  • 만약 객체가 생성후 바로 상대편과 연결을 하고 싶다면 onInit메소드 때 Remon의 connectChannel 메소드를 호출하면 됩니다.

    // 방에 통화 연결
    Remon.connectChannel(String channelId)
  • 방에 접속하거나 방을 만드는 명령입니다. 주어진 이름의 방이 없을 경우 방을 만들고 이미 방이 있을 경우 방에 접속합니다. 물론 사전에 방 이름이 있어야 하겠지만 만약 방 이름이 없을 경우 RemoteMonster는 고유한 방 이름을 생성해서 listener의 onCreateChannel메소드를 통해 방이름을 반환하게 됩니다.

  • 메소드는 하나이지만 방이름이 이미 존재하는지 여부에 따라 없으면 listener의 onCreateChannel메소드, 있으면 onConnectChannel 메소드가 호출된다고 보면 되며, onConnectChannel메소드 호출시 상대편과 연결이 완료되었음을 의미합니다.

  • 상대편과 통화 연결에 완전히 성공하는 경우 Observer의 onStateChange의 STATE.COMPLETE 상태가 입력값으로 들어옵니다. 이 때 필요한 서비스를 진행하면 됩니다.

    Remon.createRoom(roomname); // 방송용 방 만들기
    Remon.joinRoom(room id); //방송용 방 시청하기
  • 방송용 방을 만들거나 시청하는 명령입니다.

// 방을 검색
Remon.search(String channelId)
  • 주어진 인자값에 해당하는 방이름이 있는지 검색하여 알려줍니다. 인자값이 없으면 모든 방 정보를 알려줍니다.

  • 검색의 결과는 Observer의 onSearch를 통해서 받을 수 있습니다.

    pauseLocalVideo(bool)
    pauseRemoteVideo(bool)
    muteLocalAudio(bool)
    muteRemoteAudio(bool)
  • 로컬 영상/음성을 잠시 pause하거나 다시 실행시키는 기능입니다.

Remon.close();
  • Remon을 사용한 이후에는 반드시 close를 해주어야 합니다. 통신에 문제가 생기면 알아서 close가 되기도 하지만 남아있는 자원이 만에 하나 있다면 기기 성능에 아무래도 영향을 미칠 수 있습니다.

  • 재연결이 필요한 경우에도 close를 하고 다시 Remon객체를 생성하는 것을 권합니다.

  • 명시적으로 close를 할 경우 상대 peer에게 onDisconnectChannel 이벤트가 발생합니다. 또한 명시적이지 않고 브라우저를 그냥 닫았다면 상대편에게는 onStateChange 이벤트가 발생하면서 STATE.CLOSE 혹은 STATE.FAIL의 이벤트가 발생합니다. 만약 네트워크가 안좋아졌거나 끊어지면 상대편에게 onError의 type=ICEFailedError이 발생합니다.

Remon.sendMessage(userMessage)
  • 연결이 된 상태에서 상대에게 메시지를 전달할 수 있습니다.

  • 메시지를 받는 것은 listener의 onMessage를 통해서 받을 수 있습니다. 주로 통신용으로만 사용합니다

Last updated