2009-04-07 4 views
0

저는 플래시를 환경에서 최소 두 명의 사용자가 함께 사용하도록 만드는 방법을 알아 내기 위해 Google을 수색했습니다. 내가 한 일은 예를 들면 다음과 같습니다. 두 사용자 모두 http://example.com/myflashenvironment.html을로드하고 두 페이지에서 서로 다른 컴퓨터에서 볼 수있는 동일한 flashenv.swf 파일입니다. flashenv.swf에는 드래그 가능한 무비 클립 개체가 있습니다. 나는 사용자 1이 동영상 클립을 드래그하면 사용자 2가 온라인 유형의 거래에서 인터넷을 통해 드래그되는 것을 볼 수있게 만들려고합니다. 나는 온라인 게임처럼 런타임에 그것을하려고 노력했다.플래시 및 PHP, 라이브 사용자 환경 : 소켓은 어떻게 사용합니까?

나는 Google을 검색해 봤지만 소켓에 관한 것들을 발견했지만, 당신이 나일 때 바로 뛰어 들기가 매우 어렵습니다. 지금까지 내가 fsockopen으로 내 서버에 연결하는 PHP 파일이 필요하다고 생각한 다음 소켓을 만들어야합니까? 그러나 사용자 1이 드래그 할 때 동영상 클립의 (x, y) 좌표를 쓰는 방법을 모르고 사용자 2가 자동으로 동일한 좌표를 선택하게하십시오.

제발 믿어주세요. 나는 이것을 내가 최후의 수단으로 사용하여 내가 무슨 말을하고 있는지 알았는지 확인합니다. 구글은 오늘 밤 그것을 자르지 않고있다.

+0

서버 측 프로그래밍 (PHP 등 사용)을 이해하지 않고도 구현할 수있는 간단한 해결책이 아닙니다. – Jimmy

+0

팁 소켓이나 뭐든지? –

답변

2

실제로 소켓을 사용하는 방법을 읽어야하는 것처럼 들립니다. 어떻게 작동하는지 이해하면 프로그램을 구조화하는 방법이 매우 명확해야합니다. 작은 객체를 다른 사용자가보기를 원하는대로 직렬화 할 수 있습니다 (예 : 좌표 변경).

하지만, PHP는 당신이 원하는 것이 아닙니다. PHP는 이런 종류의 일을 위해서 만들어진 것이 아닙니다. 필요한 것은 독립형 서버입니다. 예를 들어 C++ 또는 Java를 사용하여 자체 롤백해야합니다. PHP는 짧은 요청을 위해 만들어 졌으므로 서버로 실행할 수 없습니다. 예, 소켓이 있지만 신속한 원샷 연결을 위해 만들어졌습니다. 당신은 항상 달리는 무언가가 필요합니다.

자신을 굴리지 않으려는 경우 이미 만들어진 플래시 다중 사용자 서버 중 일부를 확인해야합니다. Red5은 무료이며 SmartFoxServer은보다 완벽한 서버이지만 자유롭지는 않습니다 (무료 버전이지만 소수의 동시 사용자 만 지원합니다).

+0

나는 PHP 코더이고 슬프게도, ryeguy가 옳다. 당신은 분명 외부 인터페이스 또는 XML to PHP to Database를 통해 외부에서 의사 소통하는 플래시를 사용하여 다른 사용자의 플래시를 반복적으로 점검하도록 할 수 있지만 좋은 해결책은 아닙니다. – jerebear

+0

시작하는 데 도움이 될만한 정보 http://www.devarticles.com/c/a/Flash/XML-Sockets-in-Flash/ – jerebear

0

PHP에서 서버를 작성하고 실행하는 데는 의문의 여지가 있습니다 (우선 순위는 아님). 제안 된 Java 기반 솔루션이 귀하의 필요에 더 잘 맞습니다.

0

다중 사용자 플래시를 처음 사용하는 경우 SmartFox Server를 사용하는 것이 좋습니다. 사용하기 쉽고 많은 자습서가 있습니다.

0

PHP에서 원하는 소켓 서버를 만들 수는 있지만 실제로 권장하지는 않습니다.

가 브라우저를 통해이라고 같은 기존의 PHP 스크립트에 차이가, 당신이 그것을 실행하지 않을,하지만

(더 자바와 같은) 장기 실행 (무한 루프를 생각한다) CLI - 서버 응용 프로그램이 단순화 그것은 다음과 같이 작동

  1. PHP는 : 스크립트가 시작되고 플래시
  2. 들어오는 요청을 수신 : 플래시 응용 프로그램을 시작하고 서버에
  3. PHP 연결된다 (2에서) 연결이 저장됩니다 배열
  4. 플래시 : 이제 사용자가 동영상 클립을 움직이면 좌표가 스크립트
  5. php : data (좌표가 4)로 전송됩니다.지금 당신은 모든 연결을 통해 루프 ...
  6. ... 다른 모든 동영상 클립에
  7. 플래시를 데이터를 전송 : (6)에서 데이터가 도착하면 플래시 연결 인 경우, 그에 따라
  8. 을 (MC)의 위치를 ​​업데이트 종료, 배열에서

문제를 제거 : 을 - PHP는 정말 적합이 에 대한되지 않습니다 - 당신은 여전히 ​​소켓에 대해 배울 수있다. 이 주제에 대한 많은 자습서가 있지만 대부분은 단일 연결만을 다루고 있습니다. - 호스트 위치에 따라 제공 업체가 장기 실행 PHP-CLI 앱을 지원하지 않을 수 있습니다.

0

자체 서버를 작성하거나 소켓 또는 기타 복잡하고 시간이 소요되는 기술을 사용할 필요가 없습니다.

Adobe는 정확히 그 목적으로 shared object class을 만들었습니다. Flash Media Server (또는 이에 상응하는 것)을 실행하는 서버가 있어야하며 remote shared objects을 사용해야합니다.

관련 문제