1

내 문제는 : NetConnection 개체가 서버에 연결되어 있습니다. 맨 위에 NetStream 객체를 만들고 서버에서 파일을 재생하기 시작했습니다. 지금까지 클래식. 지금 필요한 것은수신 (재생) NetStream 객체의 기본 NetConnection을 통해 메시지를 전송할 수 있습니까?

는 기존 TCP 연결을 사용하여 명확하게 을 노는 시간 동안 다양한 순간에, 다시 서버에 일부 (짧은) 메시지를 보낼 만 할 수있을 것입니다.

the docs에서 읽을 수있는 내용은 기본 NetConnection 객체가 "클라이언트와 서버 간의 양방향 연결"을 지원하며 분명히 TCP 계층에서 지원합니다. 나는 TCP 네트워킹 개념을 상당히 잘 알고 있지만, Flash가 어떻게 구현했는지는 분명하지 않습니다.

  1. 이 정보가 맞습니까? NetConnection (또는 다른 메커니즘)을 사용하여 수행 할 수 있습니까?

  2. 어떻게하면 좋을까요? (예는 훌륭하지만 프로세스에 대한 개념 설명도 마찬가지로 적용됩니다). NetConnection을 통해 클라이언트에서 서버로 정확히 메시지를 보내려면 어떻게해야합니까?

  3. 활성 NetStream 객체가 이러한 동작을 방해합니까?

감사합니다.

답변

2

예, 가능합니다.

플래시 미디어 서버에 대한 연결을 가정합니다.

서버 측 스크립트 메소드를 원격으로 실행하는 NetConnection.call() 메소드를 사용하십시오.

public function call(command:String, responder:Responder, ... arguments):void 

당신은 연결 클라이언트 클래스

예를 들어,의 프로토 타입으로이 서버 측 방법을 정의해야

Client.prototype.MyMethod = function(arg) 
{ 
trace("Server received " + arg + "\n"); 
} 

는이 메서드를 호출하면 보일 것 같은 :

var nc:NetConnection; 

//initialize net connection and connect 

nc.call("MyMethod", null, "Hello, server"); 

당신이 어떤 결과를 얻기 위해 필요한 경우 - 클래스 인스턴스 대신 null을 응답기 사용합니다.

클라이언트의 메소드를 호출 할 서버가 필요한 경우 클라이언트 객체에서 서버 측 "호출"기능을 사용하십시오.

클라이언트 측 :

var obj = new Object(); 
obj.MyCallback = function(arg:Object) 
{ 
trace ("Received message from server: " + arg as String); 
} 
nc.client = obj; 

서버 측 :

clientObject.call("MyCallback", null, "Hello, client"); 

안부, 데이비드는 클라이언트 측에서 일부 객체를 정의해야합니다이 경우 은, 느릅 나무는 콜백 메소드를 가지고 .

+0

사실 저는 Flash Media Server를 사용하지 않을 것입니다. 좀 더 명확히해야한다고 생각하지만 플래시 클라이언트가 호출을 지원하면 서버가 AMF 구현과 같은 모든 AMF 구현이 될 수 있다고 생각합니다. 권리? –

+0

당신이 맞을 것 같네요.클라이언트 측에서는 모든 것이 똑같아 보일 수 있습니다. 서버 측에서는 구현이 다를 수 있습니다. (예를 들어 빨간색 5 서버) –