FMS의 어플리케이션들은 application instance들의 생성에 의해 실행된다. 클라이언트가 어플리케이션에 접속했을 때, 실제로 클라이언트는 어플리케이션의 인스턴스에 접속된다.
예를 들어, 클라이언트가 chat_app라는 어플리케이션에 접속한다면, 다음과 같이 된다.
nc.connect(“rtmp://myDomain.com/chat_app”);
이 예에서 클라이언트는 실제로 어플리케이션의 기본 이름인 _defInst_라는 인스턴스에 접속된다.
클라이언트들은 NetConnection.connect 명령에서 정의된 인스턴스 이름값을 가지는 특정 어플리케이션의 인스턴스에 접속한다.
nc.connect(“rtmp://myDomain.com/chat_app/instance1”);
이 예에서 클라이언트는 이름이 instance1라는 어플리케이션의 인스턴스에 접속된다.
특정 목적을 위해 어플리케이션의 인스턴스를 이용하려 한다면, 다음 예와 같이 채팅 프로그램의 방과 같은 개념으로 동일 어플리케이션에 접속하는 다은 그룹으로 구분할 수 있다.
my_nc.connect("rtmp://myServer.myDomain.com/chatApp/room_01");
my_nc.connect("rtmp://myServer.myDomain.com/chatApp/room_02");
각 어플리케이션의 인스턴스는 unique한 이름으로 지정되고, 어플리케이션과는 다르게 서버에 별도의 디렉토리를 정의할 필요는 없다. 그러나 스트림이나 공유객체들과 같은 어플리케이션 리소스들은 각 인스턴스들에 대해 독립적이고, 그 자체적으로 스트림이나 고유객체들이 디렉토리에 저장된다.
어플리커이션의 인스턴스를 이용하는 또다른 이유는 어플리케이션에 의해 생성된 기록 스트림이나 고유객체들의 충돌을 피하기 위한 것이다.
예를 들어, 다음 코드에서는 어플리케이션에 CustomerInfo라는 이름의 두개의 공유 객체를 생성하고, 각각의 인스턴스는 그 어플리케이션이 가지고 있는 CustomerInfo 객체에만 접근할 수 있다. 또한, session1에 위해 사용된 CustomerInfo에 있는 데이터는 session2에 위해 사용된 CustomerInfo에 있는 데이터와 다르다.
// One instance of application "support"
first_nc = new NetConnection();
first_nc.connect("myserver.mydomain.com/support/session1");
first_so = SharedObject.getRemote("CustomerInfo", first_nc.URI, false);
first_so.connect(first_nc.URI);
// Another instance of application "support"
second_nc = new NetConnection();
second_nc.connect("myserver.mydomain.com/support/session2");
second_so = SharedObject.getRemote("CustomerInfo", second_nc.URI, false);
second_so.connect(second_nc.URI);
어플리케이션의 인스턴들과 관련된 몇 가지 설정은 Application.xml 파일에서 설정할 수 있다. 이 파일에서는 서버에서 인스턴스를 unload하기 전에 최대 대기시간을 구성할 수 있다. Vhost.xml 파일에서는 가상 호스트가 서비스하는 어플리케이션에 접속할 수 있는 클라이언트 수를 설정하거나 가상 호스트에 로드될 수 있는 인스턴스 수를 구성할 수 있다.
2007년 6월 14일 목요일
피드 구독하기:
댓글 (Atom)



댓글 없음:
댓글 쓰기