문제

나는 내가 만든 멀티 터치 애플리케이션에서 약간의 꼬임을 해결하려고 노력하고 있습니다. 사용합니다 flosc 멀티 터치 이벤트를 보내는 XML 소켓 서버와 통신합니다.

이것은 대부분의 시간 동안 잘 작동합니다.

그러나 내가 의미가 있고 멀티 터치 이벤트로 범람하면 플래시는 입력을 구문 분석 할 수 없으며 소켓은 따라 잡거나 모든 것이 충돌 할 때까지 쌓이는 데이터를 계속 얻습니다.

*너무 많은*가 있으면 입력을 버리는 데 문제가 없지만 영리한 방법을 고안하는 데 어려움이 있습니다.

* 앱은 문제없이 6-10의 동시 입력을 수행합니다. 기본적으로 누군가가 테이블에 누워 있다는 것을 의미하는 20+를 처리해야 할 때는 일이 털이 발생하기 시작합니다.)

도움이 되었습니까?

해결책

어디에서 질식하고 있습니까? 먼저 분석을 시작합니다.

프로필 "서버":

  • XML 인코딩을하는 데 얼마나 많은 시간이 걸립니까?
  • 소켓에 완전히 글을 쓰는 데 얼마나 많은 시간이 걸립니까?

클라이언트 프로파일 :

  • 소켓에서 데이터를 읽는 데 얼마나 많은 시간이 걸립니까?
  • XML을 해독하는 데 얼마나 많은 시간이 걸립니까?

개인적으로 이와 같은 것을 위해 나는 당신이 할 수 있다면 XML을 피하고/또는 XML을 게으르려고 시도합니다 (필요하다는 것을 알고있을 때하십시오 ... 따라서 프로그램이 CPU 사이클을 낭비하지 않고 XML 청크를 버릴 수 있습니다. 오버로드 됨).

나는 원시 소켓 클래스로 가려고 노력할 것입니다 http://www.adobe.com/livedocs/flash/9.0/main/00000318.html#wp128960 각 인덱스에 관련 데이터가 포함 된 배열 인 사용자 정의 패킷 형식. psudocode에서 :

messageArray = [message type, arg0, arg1, arg2...];

따라서 '마우스 이동 이벤트'가 다음과 같이 정의 될 수 있습니다.

MessageConstants.MOUSE_MOVE = 0; // or whatever id you want

messageArray = [MessageConstants.MOUSE_MOVE, mouseDeltaX, mouseDeltaY];

그런 다음 AMF를 사용하십시오 http://en.wikipedia.org/wiki/action_message_format 와이어를 통해 데이터를 직렬화합니다.

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top