2011-12-17 3 views
0

red5와 flex를 사용하여 온라인 게임을 개발 중입니다. RTMP 연결을 사용합니다. netConnection.call 만 사용했습니다. 내 문제는 red5 호출이 매너 동기화되지오고있다. 갑자기 일부 통화가 시간이 걸리는 클라이언트로 일부 통화가 왔습니다. 이 호출을 클라이언트쪽에 순서대로 연결하도록하고 싶습니다. 어느 누구도 도와주세요 ...Red5 NetConnection 호출을 동기화하는 방법

답변

0

다음은 제 의견입니다.이 작업을 수행하는 데 훨씬 좋은 방법이있을 것입니다.

  1. NetConnection.call 실행을 담당하는 클래스를 작성하십시오. 이 수업에서는 이전에 완료되기 전에 전화가 걸리지 않도록하십시오. 순서를 보장하지만 실행 속도가 느립니다.
  2. 다음과 같은 클래스를 작성하십시오. 데이터 구조가 있어야하며, 가장 간단한 형태의 배열 일 수 있습니다. 배열은 호출 순서, 콜백 함수 및 서버에서 반환 된 결과를 보유하는 객체를 포함합니다. 메서드를 호출 할 때 이러한 호출을 호출 순서로 배열에 추가합니다. 서버에서 결과를 받으면 배열을 확인하십시오. 이전 호출이 아직 반환되지 않은 경우 배열에 저장합니다. 보류중인 이전 호출이없는 경우 콜백 함수를 "나중에 호출했지만 이전에 완료했습니다"라는 함수를 호출하고 배열에서 해당 항목을 제거하십시오.

그러나 응용 프로그램에 어떤 결과가 순서대로 필요할 경우 (아마도 빨간색으로 표시되지만) 아키텍처를 고려해야합니다. 대부분의 경우 신중하게 생각한 이벤트 처리 메커니즘으로 필요성이나 결과를 제거합니다.

0

Red5는 동기화 된 다중 스레드 액세스를 지원하는 두 개의 응용 프로그램 어댑터를 제공합니다. 그것들을 사용하려면 애플리케이션의 org.red5.server.adapter.ApplicationAdapter를 sync로 확장하거나 org.red5.server.adapter.MultiThreadedApplicationAdapter를 확장하면됩니다.

관련 문제