| 패키지 | flash.net |
| 클래스 | public class NetConnection |
| 상속 | NetConnection EventDispatcher Object |
| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
Flash Media Server가 없으면 NetConnection 클래스를 사용해서 로컬 파일 시스템 또는 웹 서버에서 비디오 파일이나 MP3 파일을 재생할 수 있습니다.
지원하는 코덱과 파일 형식에 대한 자세한 내용은 http://www.adobe.com/go/hardware_scaling_kr 및 Flash Media Server 설명서를 참조하십시오.
NetConnection 클래스를 사용할 경우 다음과 같은 보안 모델을 생각해 볼 수 있습니다.
하지만 Adobe AIR에서 application 보안 샌드박스의 내용 즉 AIR 응용 프로그램과 함께 설치되는 내용은 이러한 보안 제한에 의해 제한되지 않습니다.
자세한 내용은 다음을 참조하십시오.
참고: 이 클래스는 ActionScript 2.0에서는 동적이었으나 현재는 봉인 클래스입니다. 이 클래스에 대한 콜백 메서드를 작성하려면 클래스를 확장하고 하위 클래스에서 콜백 메서드를 정의하거나, client 속성을 사용하여 객체를 참조하고 이 객체에 콜백 메서드를 정의합니다.
참고 사항
| 속성 | 다음에 의해 정의됨 | ||
|---|---|---|---|
| client : Object 콜백 메서드를 호출해야 하는 객체를 나타냅니다. | NetConnection | ||
| connected : Boolean [읽기 전용] 응용 프로그램이 영구적인 RTMP 연결을 통해 서버에 연결되었는지(true) 그렇지 않은지(false)를 나타냅니다. | NetConnection | ||
| connectedProxyType : String [읽기 전용] Flash Media Server와의 성공적인 NetConnection.connect() 호출을 위해 사용된 프록시 유형: "none", "HTTP", "HTTPS" 또는 "CONNECT" | NetConnection | ||
![]() | constructor : Object 지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | |
| defaultObjectEncoding : uint [정적] NetConnection 객체에 대한 기본 객체 인코딩입니다. | NetConnection | ||
| farID : String [읽기 전용] 이 Flash Player 또는 Adobe AIR 인스턴스가 연결된 Flash Media Server 인스턴스의 ID입니다. | NetConnection | ||
| farNonce : String [읽기 전용] Flash Media Server에서 이 연결에 고유하도록 주의깊게 선택한 값입니다. | NetConnection | ||
| maxPeerConnections : uint 이 Flash Player 또는 Adobe AIR 인스턴스에서 허용하는 인바운드 및 아웃바운드 피어 연결의 총 개수입니다. | NetConnection | ||
| nearID : String [읽기 전용] 이 NetConnection 인스턴스에 대한 이 Flash Player 또는 Adobe AIR 인스턴스의 ID입니다. | NetConnection | ||
| nearNonce : String [읽기 전용] 이 Flash Player 또는 Adobe AIR 인스턴스에서 이 연결에 고유하도록 주의깊게 선택한 값입니다. | NetConnection | ||
| objectEncoding : uint 이 NetConnection 인스턴스에 대한 객체 인코딩입니다. | NetConnection | ||
| protocol : String [읽기 전용] 연결하는 데 사용되는 프로토콜입니다. | NetConnection | ||
![]() | prototype : Object [정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다. | Object | |
| proxyType : String 초기 서버 연결 시도가 실패한 경우 어떤 폴백 메서드를 시도해야 할지 결정합니다. | NetConnection | ||
| unconnectedPeerStreams : Array [읽기 전용] 배급 NetStream 객체와 연관되지 않은 모든 피어 구독자 NetStream 객체를 보유하는 객체입니다. | NetConnection | ||
| uri : String [읽기 전용] URI가 NetConnection.connect() 메서드로 전달됩니다. | NetConnection | ||
| usingTLS : Boolean [읽기 전용] HTTPS가 아니라 기본 TLS(Transport Layer Security)를 사용하여 보안 연결이 이루어졌는지 여부를 나타냅니다. | NetConnection | ||
| 메서드 | 다음에 의해 정의됨 | ||
|---|---|---|---|
NetConnection 객체를 만듭니다. | NetConnection | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | |
AMF(Action Message Format) 패킷 구조에 컨텍스트 헤더를 추가합니다. | NetConnection | ||
Flash Media Server 또는 Flash Remoting을 실행하고 있는 응용 프로그램 서버에서 명령이나 메서드를 호출합니다. | NetConnection | ||
로컬 또는 서버에서 열었던 연결을 종료하고 NetConnection.Connect.Closed의 code 속성으로 netStatus 이벤트를 전달합니다. | NetConnection | ||
Flash Player 또는 AIR 응용 프로그램과 Flash Media Server 응용 프로그램 간의 양방향 연결을 만듭니다. | NetConnection | ||
![]() | 이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | |
![]() | EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | |
![]() | 지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | |
![]() | Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | |
![]() | 지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | |
![]() | EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | |
![]() | 루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | |
![]() | 지정된 객체의 문자열 표현을 반환합니다. | Object | |
![]() | 지정된 객체의 프리미티브 값을 반환합니다. | Object | |
![]() | 이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | |
| 이벤트 | 요약 | 다음에 의해 정의됨 | ||
|---|---|---|---|---|
![]() | [브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | ||
| 기본 비동기 코드에서 비동기적으로 예외가 발생할 때 전달됩니다. | NetConnection | |||
![]() | [브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | ||
| 네트워크 작업의 실패를 유발하는 입력 또는 출력 오류가 발생할 때 전달됩니다. | NetConnection | |||
| NetConnection 객체가 상태 또는 오류 상황을 보고할 때 전달됩니다. | NetConnection | |||
| NetConnection.call() 호출로 호출자의 보안 샌드박스 외부에 있는 서버에 대한 연결을 시도하면 전달됩니다. | NetConnection | |||
| client | 속성 |
client:Object [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
콜백 메서드를 호출해야 하는 객체를 나타냅니다. 기본값은 이 NetConnection 인스턴스입니다. client 속성을 다른 객체로 설정하면 이 객체에서 콜백 메서드가 호출됩니다.
public function get client():Object public function set client(value:Object):voidTypeError —
client 속성은 null이 아닌 객체로 설정해야 합니다.
|
| connected | 속성 |
connected:Boolean [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
응용 프로그램이 영구적인 RTMP 연결을 통해 서버에 연결되었는지(true) 그렇지 않은지(false)를 나타냅니다. HTTP를 통해 연결된 경우, 이 속성은 false가 되며 응용 프로그램 서버에 있는 Flash Remoting 서비스에 연결된 경우에는 예외적으로 true가 됩니다.
public function get connected():Boolean| connectedProxyType | 속성 |
connectedProxyType:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
Flash Media Server와의 성공적인 NetConnection.connect() 호출을 위해 사용된 프록시 유형: "none", "HTTP", "HTTPS" 또는 "CONNECT" 연결을 터널링하지 않을 경우 이 값은 "none"이 되고, 연결을 HTTP로 터널링할 경우에는 "HTTP", HTTPS로 터널링할 경우에는 "HTTPS" 그리고 HTTP CONNECT 메서드를 사용해서 터널링할 경우의 값은 "CONNECT"입니다.
public function get connectedProxyType():StringArgumentError — NetConnection 인스턴스가 연결되어 있지 않을 때 이 속성에 대한 액세스를 시도했습니다. |
| defaultObjectEncoding | 속성 |
defaultObjectEncoding:uint [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
NetConnection 객체에 대한 기본 객체 인코딩입니다. 객체를 이진 데이터로 쓰거나 이진 데이터에서 읽을 때 defaultObjectEncoding 속성은 데이터를 직렬화하기 위해 ActionScript 3.0 형식(ObjectEncoding.AMF3) 또는 ActionScript 1.0 및 ActionScript 2.0 형식(ObjectEncoding.AMF0) 중 어떤 AMF(Action Message Format) 버전이 사용되는지를 나타냅니다.
기본값은 ObjectEncoding.AMF3입니다. NetConnection.defaultObjectEncoding을 변경해도 기존 NetConnection 인스턴스에는 영향이 없으며 이후 만들어지는 인스턴스에만 영향을 줍니다.
전체 응용 프로그램에 대한 객체 인코딩을 설정하는 대신 객체의 인코딩을 개별적으로 설정하려면 NetConnection 객체의 objectEncoding 속성을 설정합니다.
자세한 내용은 objectEncoding 속성의 설명을 참조하십시오.
public static function get defaultObjectEncoding():uint public function set defaultObjectEncoding(value:uint):void참고 사항
| farID | 속성 |
farID:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
이 Flash Player 또는 Adobe AIR 인스턴스가 연결된 Flash Media Server 인스턴스의 ID입니다. 이 속성은 RTMFP 연결에서만 의미가 있습니다. 이 속성의 값은 RTMFP 연결이 설정된 후에만 사용 가능합니다.
public function get farID():String참고 사항
| farNonce | 속성 |
farNonce:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
Flash Media Server에서 이 연결에 고유하도록 주의깊게 선택한 값입니다. 이 값은 서버에 client.nearNonce 값으로 나타납니다. 이 값은 RTMFP 연결에만 정의됩니다.
public function get farNonce():String| maxPeerConnections | 속성 |
maxPeerConnections:uint [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
이 Flash Player 또는 Adobe AIR 인스턴스에서 허용하는 인바운드 및 아웃바운드 피어 연결의 총 개수입니다. 기본값은 8입니다.
이 값은 배급자와 구독자 연결을 구분하지 않습니다. 피어가 연결된 동안에는 이 값이 감소되어도 새 값은 새로 들어오는 연결에만 영향을 줍니다. 기존 연결은 끊어지지 않습니다.
public function get maxPeerConnections():uint public function set maxPeerConnections(value:uint):void| nearID | 속성 |
nearID:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
이 NetConnection 인스턴스에 대한 이 Flash Player 또는 Adobe AIR 인스턴스의 ID입니다. 이 속성은 RTMFP 연결에서만 의미가 있습니다.
각 NetConnection 인스턴스에는 고유한 nearID 속성이 있습니다. 어떠한 Flash Player, Adobe AIR 인스턴스 또는 NetConnection 인스턴스도 같은 ID를 갖지 않습니다.
다른 Flash Player 또는 Adobe AIR 인스턴스에서는 이 ID를 이 클라이언트에 대한 새 NetStream 연결의 peerID로 사용합니다. 결과적으로 이 ID는 이 인스턴스에 연결된 모든 피어 NetStream의 farID입니다.
public function get nearID():String참고 사항
| nearNonce | 속성 |
nearNonce:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
이 Flash Player 또는 Adobe AIR 인스턴스에서 이 연결에 고유하도록 주의깊게 선택한 값입니다. 이 값은 서버에 client.farNonce 값으로 나타납니다. 이 값은 RTMFP 연결에만 정의됩니다.
public function get nearNonce():String| objectEncoding | 속성 |
objectEncoding:uint [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
이 NetConnection 인스턴스에 대한 객체 인코딩입니다.
객체를 이진 데이터로 쓰거나 이진 데이터에서 읽을 때 defaultObjectEncoding 속성은 데이터를 직렬화하기 위해 ActionScript 3.0 형식(ObjectEncoding.AMF3) 또는 ActionScript 1.0 및 ActionScript 2.0 형식(ObjectEncoding.AMF0) 중 어떤 AMF(Action Message Format) 버전을 사용해야 할지를 나타냅니다. objectEncoding 속성을 설정해서 NetConnection 인스턴스에 대한 AMF 버전을 설정합니다.
응용 프로그램이 Flash Player 9 이전에 릴리스된 서버와 통신해야 하는 경우 이 속성을 잘 이해해야 합니다. 다음과 같은 세 가지 시나리오가 가능합니다.
defaultObjectEncoding의 기본값은 ObjectEncoding.AMF3입니다. 이 파일에서 만들어진 모든 NetConnection 인스턴스는 AMF3 직렬화를 사용하므로 objectEncoding 속성을 설정할 필요가 없습니다.
NetConnection.defaultObjectEncoding 속성을 ObjectEncoding.AMF0으로 설정합니다. 이 SWF 파일에서 만들어진 모든 NetConnection 인스턴스는 AMF0 직렬화를 사용합니다. objectEncoding 속성을 설정할 필요가 없습니다.
defaultObjectEncoding을 사용하는 대신 각 연결의 objectEncoding 속성을 사용하여 연결 기준으로 객체의 인코딩을 설정합니다. Flash Media Server 2와 같은 AMF0 인코딩을 사용하는 서버로 연결하려면 ObjectEncoding.AMF0으로 설정하고, Flex Data Services 2와 같은 AMF3 인코딩을 사용하는 서버로 연결하려면 ObjectEncoding.AMF3으로 설정합니다.
NetConnection 인스턴스가 연결되면 objectEncoding 속성은 읽기 전용이 됩니다.
서버 연결 시 잘못된 인코딩을 사용하면 NetConnection 객체는 netStatus 이벤트를 전달합니다. NetStatusEvent.info 속성에는 code 속성 값이 NetConnection.Connect.Failed인 정보 객체와 객체의 인코딩이 잘못되었음을 설명하는 정보 객체가 포함되어 있습니다.
public function get objectEncoding():uint public function set objectEncoding(value:uint):voidReferenceError —
NetConnection 인스턴스가 연결된 상태에서 objectEncoding 속성 값을 설정하려고 시도했습니다.
| |
ArgumentError —
이 속성 값이 ObjectEncoding.AMF0 또는 ObjectEncoding.AMF3 이외의 값으로 설정되었습니다.
|
참고 사항
| protocol | 속성 |
protocol:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
연결하는 데 사용되는 프로토콜입니다. 이 속성은 Flash Media Server를 사용할 때 적용됩니다. 사용 가능한 값은 다음과 같습니다.
"rtmp": RTMP(Real-Time Messaging Protocol)
"rtmpe": Encrypted RTMP
"rtmpt": HTTP tunneling RTMP
"rtmpte": HTTP tunneling encrypted RTMP
"rtmps": HTTPS based RTMP
"rtmfp": RTMFP(Real-Time Media Flow Protocol)
public function get protocol():StringArgumentError — NetConnection 인스턴스가 연결되어 있지 않을 때 이 속성에 대한 액세스를 시도했습니다. |
| proxyType | 속성 |
proxyType:String [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
초기 서버 연결 시도가 실패한 경우 어떤 폴백 메서드를 시도해야 할지 결정합니다. 반드시 proxyType 속성을 설정한 후에 NetConnection.connect() 메서드를 호출해야 합니다.
사용할 수 있는 값은 "none", "HTTP", "CONNECT" 및 "best"입니다.
이 속성의 기본값은 "none"입니다. 이 값을 변경하지 않으면 응용 프로그램은 RTMPS에 대해 HTTPS 터널링을 사용합니다. 속성이 "best"로 설정되면 클라이언트는 기본 SSL을 사용해 연결을 시도합니다. 연결에 실패하면 다른 연결 메서드를 시도합니다. 속성이 "HTTP"로 설정되고 직접 연결에 실패한 경우 HTTP 터널링이 사용됩니다. 속성이 "CONNECT"로 설정되고 직접 연결에 실패한 경우 터널링의 CONNECT 메서드가 사용됩니다. 실패하는 경우에도 연결이 HTTP 터널링으로 폴백하지 않습니다.
이 속성은 RTMP, RTMPS 또는 RTMPT를 사용하는 경우에만 적용할 수 있습니다. CONNECT 메서드는 프록시 서버를 통해 네트워크에 연결된 사용자에게만 적용할 수 있습니다.
public function get proxyType():String public function set proxyType(value:String):void| unconnectedPeerStreams | 속성 |
unconnectedPeerStreams:Array [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
배급 NetStream 객체와 연관되지 않은 모든 피어 구독자 NetStream 객체를 보유하는 객체입니다. 배급 NetStream 객체에 연결된 구독자 NetStream 객체는 NetStream.peerStreams 배열에 있습니다.
public function get unconnectedPeerStreams():Array참고 사항
| uri | 속성 |
uri:String [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
URI가 NetConnection.connect() 메서드로 전달됩니다. NetConnection.connect()가 호출되지 않았거나 전달된 URI가 없는 경우 이 속성은 undefined입니다.
public function get uri():String| usingTLS | 속성 |
usingTLS:Boolean [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
HTTPS가 아니라 기본 TLS(Transport Layer Security)를 사용하여 보안 연결이 이루어졌는지 여부를 나타냅니다. 이 속성은 NetConnection 객체가 연결되어 있을 때만 유효합니다.
public function get usingTLS():BooleanArgumentError — NetConnection 인스턴스가 연결되어 있지 않을 때 이 속성에 대한 액세스를 시도했습니다. |
| NetConnection | () | 생성자 |
public function NetConnection()| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
NetConnection 객체를 만듭니다. 연결하려면 connect()를 호출합니다.
응용 프로그램이 Flash Player 9 이전에 릴리스된 서버와 통신해야 하는 경우 NetConnection 객체의 objectEncoding 속성을 설정해야 할 수도 있습니다.
참고 사항
| addHeader | () | 메서드 |
public function addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
AMF(Action Message Format) 패킷 구조에 컨텍스트 헤더를 추가합니다. 이 헤더는 향후 전송되는 모든 AMF 패킷과 함께 전송됩니다. 동일한 이름을 사용하여 NetConnection.addHeader()를 호출하면 새 헤더가 기존 헤더를 교체하고, 새 헤더가 NetConnection 객체가 존재하는 동안 지속됩니다. 정의되지 않은 객체를 제거하는 NetConnection.addHeader() 헤더를 호출하면 헤더를 제거할 수 있습니다.
매개 변수
operation:String — 헤더와 이와 연관된 ActionScript 객체 데이터를 식별합니다. | |
mustUnderstand:Boolean (default = false) —
true 값은 다음 헤더 또는 메시지를 처리하기 전에 서버가 이 헤더를 이해하고 처리해야 한다는 것을 나타냅니다.
| |
param:Object (default = null) — ActionScript 객체입니다. |
| call | () | 메서드 |
public function call(command:String, responder:Responder, ... arguments):void| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
Flash Media Server 또는 Flash Remoting을 실행하고 있는 응용 프로그램 서버에서 명령이나 메서드를 호출합니다. 서버와 연결하려면 NetConnection.call()를 호출하기 전에 NetConnection.connect()를 먼저 호출해야 합니다. 이 메서드를 전달하려면 서버측 함수를 만들어야 합니다.
일반적으로 예약된 포트에 연결할 수 없습니다. 차단된 포트의 전체 목록은 보안 장(ActionScript 3.0 프로그래밍 설명서)에서 "네트워킹 API 제한"을 참조하십시오.
매개 변수
command:String —
[objectPath/]method 형식으로 지정된 메서드입니다. 예를 들어, someObject/doSomething 명령은 원격 서버에 선택적 ... arguments 매개 변수를 사용하여 clientObject.someObject.doSomething() 메서드를 호출하도록 지시합니다. 객체 경로가 없는 경우 원격 서버에서 clientObject.doSomething()이 호출됩니다.
Flash Media Server가 있을 경우, | |
responder:Responder —
서버로부터의 반환 값을 처리하기 위해 사용되는 선택적 객체입니다. Responder 객체는 반환 값을 처리하기 위해 result와 status라는 두 가지 정의된 메서드를 가질 수 있습니다. 결과로 오류가 반환될 경우 status가 호출되고, 그렇지 않으면 result가 호출됩니다. Responder 객체는 특정 작업과 관련된 오류를 처리할 수 있으며 NetConnection 객체는 연결 상태와 관련된 오류에 응답할 수 있습니다.
| |
... arguments —
선택적 인수는 다른 ActionScript 객체에 대한 참조를 포함하여 어떤 ActionScript 유형이나 가능합니다. 이러한 인수는 메서드가 원격 응용 프로그램 서버에서 실행될 때 command 매개 변수에 지정된 메서드로 전달됩니다.
|
securityError: — 호출자의 보안 샌드박스 외부의 서버와 통신하려고 시도했습니다. 서버의 정책 파일을 사용하여 이 문제를 해결할 수 있습니다. |
| close | () | 메서드 |
public function close():void| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
로컬 또는 서버에서 열었던 연결을 종료하고 NetConnection.Connect.Closed의 code 속성으로 netStatus 이벤트를 전달합니다.
이 메서드는 연결을 통해 실행하는 모든 NetStream 객체의 연결을 종료합니다. 전송되지 않은 모든 대기열의 데이터는 버립니다. 연결을 닫지 않고 로컬 또는 서버 스트림을 종료하려면 NetStream.close()를 사용합니다. 연결을 닫은 후 새 연결을 만들려면 새로운 NetConnection 객체를 만들고 connect() 메서드를 다시 호출해야 합니다.
또한 close() 메서드는 이 연결을 통해 실행되는 모든 원격 공유 객체의 연결도 끊습니다. 하지만 다시 연결하기 위해 공유 객체를 다시 만들 필요는 없습니다. 대신 SharedObject.connect()를 호출하여 공유 객체에 대한 연결을 다시 설정할 수 있습니다. 또한 NetConnection.close()를 실행할 때 대기열에 있던 공유 객체의 모든 데이터는 공유 객체에 대한 연결을 다시 설정한 후에 전송됩니다.
Flash Media Server를 사용할 경우, 클라이언트가 더 이상 서버와의 연결을 필요로 하지 않을 때 close()를 호출하는 것이 가장 좋은 개발 방식입니다. close()를 호출하는 것이 사용하지 않는 연결을 끊는 가장 빠른 방법입니다. 보완적인 방법으로 유휴 연결을 자동으로 닫도록 서버를 구성할 수도 있습니다. 자세한 내용은 Flash Media Server 구성 및 관리 안내서를 참조하십시오.
참고 사항
| connect | () | 메서드 |
public function connect(command:String, ... arguments):void| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
Flash Player 또는 AIR 응용 프로그램과 Flash Media Server 응용 프로그램 간의 양방향 연결을 만듭니다. NetConnection 객체는 클라이언트와 서버를 연결하는 파이프와 같습니다. NetStream 객체는 파이프를 통해 스트림을 보내는 데 사용합니다. Flash Media Server가 지원하는 코덱과 파일 형식에 대한 자세한 내용은 Flash Media Server 설명서를 참조하십시오.
Flash Media Server가 없으면 NetConnection.connect()를 호출해서 로컬 파일 시스템이나 웹 서버에서 비디오 파일과 MP3 파일을 재생할 수 있습니다. 지원하는 코덱과 파일 형식에 대한 자세한 내용은 http://www.adobe.com/go/hardware_scaling_kr을 참조하십시오.
Flash Player 또는 AIR 응용 프로그램과 Flash Remoting 서비스를 실행 중인 응용 프로그램 서버 간의 양방향 연결을 만듭니다. NetConnection 객체를 통해 함수를 호출하고 응용 프로그램 서버로부터 결과를 반환하려면 NetServices 클래스를 사용합니다. 자세한 내용은 Flash Remoting 설명서를 참조하십시오.
이 메서드를 사용할 경우 다음과 같은 보안 모델을 생각해 볼 수 있습니다.
NetConnection.connect()를 사용할 수 없습니다.
allowNetworking 매개 변수(object 및 embed 태그)를 설정하여 SWF 파일에서 이 메서드를 사용하지 않게 할 수 있습니다.
하지만 Adobe AIR에서 application 보안 샌드박스의 내용 즉 AIR 응용 프로그램과 함께 설치되는 내용은 이러한 보안 제한에 의해 제한되지 않습니다.
자세한 내용은 다음을 참조하십시오.
매개 변수
command:String —
로컬 컴퓨터에서 비디오 파일과 연결 중이라면 이 매개 변수를 null로 설정합니다. 서버와 연결 중이라면, 이 매개 변수를 서버에서 비디오 파일을 포함하고 있는 응용 프로그램의 URI로 설정합니다. 다음 구문을 사용하십시오(대괄호 안의 항목은 생략 가능).
Flash Media Server에 연결하려면
서버가 설치된 것과 동일한 호스트에서 파일이 제공되는 경우 | |
... arguments —
command에 지정된 응용 프로그램으로 전달되는 모든 유형의 선택적 매개 변수입니다. Flash Media Server가 있으면 추가 인수는 응용 프로그램의 서버측 코드에서 application.onConnect() 이벤트 핸들러로 전달됩니다. 반드시 onConnect()에서 인수를 정의하고 처리해야 합니다.
|
ArgumentError —
command 매개 변수에 전달된 URI가 잘못된 형식입니다.
| |
IOError —
연결에 실패했습니다. netStatus 이벤트 핸들러 내에서 connect()를 호출했을 때 발생하며, 이는 허용되지 않습니다.
| |
SecurityError — Local-with-filesystem SWF 파일은 인터넷 통신이 불가능합니다. SWF 파일을 네트워킹 가능한 로컬 파일(local-with-networking) 또는 신뢰할 수 있는 파일로 다시 규정하면 이 문제를 해결할 수 있습니다. | |
SecurityError —
일반적으로 예약된 포트에 연결하려고 했습니다. 차단된 포트의 전체 목록은 ActionScript 3.0 프로그래밍 설명서의 보안 장에서 "네트워킹 API 제한"을 참조하십시오.
|
참고 사항
| asyncError | 이벤트 |
flash.events.AsyncErrorEventflash.events.AsyncErrorEvent.ASYNC_ERROR| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
기본 비동기 코드에서 비동기적으로 예외가 발생할 때 전달됩니다.
AsyncErrorEvent.ASYNC_ERROR 상수는 asyncError 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles
|
false
|
cancelable
|
false; 취소할 기본 비헤이비어가 없습니다.
|
currentTarget
| 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target
| 이벤트를 전달하는 객체입니다. |
error
| 이벤트를 트리거한 오류입니다. |
| ioError | 이벤트 |
flash.events.IOErrorEventflash.events.IOErrorEvent.IO_ERROR| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
네트워크 작업의 실패를 유발하는 입력 또는 출력 오류가 발생할 때 전달됩니다.
ioError 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles
|
false
|
cancelable
|
false; 취소할 기본 비헤이비어가 없습니다.
|
currentTarget
| 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
errorID
| 특정 오류와 연결된 참조 번호입니다(AIR만 해당). |
target
| 입력/출력 오류가 발생한 네트워크 객체입니다. |
text
| 오류 메시지로 표시될 텍스트입니다. |
| netStatus | 이벤트 |
flash.events.NetStatusEventflash.events.NetStatusEvent.NET_STATUS| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
NetConnection 객체가 상태 또는 오류 상황을 보고할 때 전달됩니다. netStatus 이벤트에는 연결 시도의 성공 또는 실패 등 이벤트에 대한 특정 정보가 포함된 정보 객체인 info 속성이 포함되어 있습니다.
netStatus 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles
|
false
|
cancelable
|
false; 취소할 기본 비헤이비어가 없습니다.
|
currentTarget
| 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
info
| 객체의 상태 또는 오류 상황을 설명하는 속성이 있는 객체입니다. |
target
| 상태를 보고하는 NetConnection 또는 NetStream 객체입니다. |
참고 사항
| securityError | 이벤트 |
flash.events.SecurityErrorEventflash.events.SecurityErrorEvent.SECURITY_ERROR| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0 Flash Player 9 |
NetConnection.call() 호출로 호출자의 보안 샌드박스 외부에 있는 서버에 대한 연결을 시도하면 전달됩니다.
SecurityErrorEvent.SECURITY_ERROR 상수는 securityError 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles
|
false
|
cancelable
|
false; 취소할 기본 비헤이비어가 없습니다.
|
currentTarget
| 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target
| 보안 오류를 보고하는 네트워크 객체입니다. |
text
| 오류 메시지로 표시될 텍스트입니다. |
참고 사항
videoURL에 전달된 변수와 이름 및 위치가 동일한 FLV 파일이 필요합니다. 이 경우에는 SWF 파일과 같은 디렉토리에 있는 Video.flv라는 이름의 FLV 파일이 필요합니다.
이 예제에서는 Video 및 NetStream 객체를 만들고 Video.attachNetStream() 및 NetStream.play() 메서드를 호출하는 코드가 핸들러 함수에 배치됩니다. 핸들러는 NetConnection 객체에 대한 연결에 성공할 경우, 즉 netStatus 이벤트가 성공을 나타내는 code 속성이 있는 info 객체를 반환할 경우에만 호출됩니다. 연결에 성공할 때까지 기다렸다가 NetStream.play()를 호출하는 것이 좋습니다.
package {
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
public class NetConnectionExample extends Sprite {
private var videoURL:String = "Video.flv";
private var connection:NetConnection;
private var stream:NetStream;
public function NetConnectionExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect(null);
}
private function netStatusHandler(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
trace("Stream not found: " + videoURL);
break;
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function connectStream():void {
var stream:NetStream = new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.client = new CustomClient();
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoURL);
addChild(video);
}
}
}
class CustomClient {
public function onMetaData(info:Object):void {
trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
}
public function onCuePoint(info:Object):void {
trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}