Question

Je suis en train de travailler sur quelques petits défauts dans une application multitouch je l'ai construit. Il utilise flosc pour communiquer avec un serveur socket XML qui envoie les événements multitouch.

Tout cela fonctionne très bien et dandy pour la plupart du temps.

Mais si je suis moyenne et inonder avec des événements multitouch Flash ne peut pas suivre l'analyse de l'entrée, et la prise ne cesse de se données entasse jusqu'à ce qu'il soit rattrape ou les accidents de chose ensemble.

Je n'ai pas de problème jeter entrée une fois il y a trop *, mais je ne parviens pas à concevoir une façon intelligente de le faire.

* L'application fait 6-10 entrées simultanées sans problème, les choses commencent à poilue une fois que je dois faire face à 20+ qui signifie essentiellement que quelqu'un est couché sur la table;)

Était-ce utile?

La solution

Où est-il étouffait? D'abord, je voudrais commencer par faire une analyse.

Profil du "serveur":

  • combien de temps il prend pour faire l'encodage XML?
  • combien de temps il prend pour écrire complètement à la prise?

Profil du client:

  • combien de temps cela prend-il pour lire les données de la prise?
  • combien de temps cela prend-il pour décoder le XML?

Personnellement, quelque chose comme cela, je voudrais éviter XML si vous pouviez, et / ou essayer de-decode paresseux le xml (le faire quand vous savez que vous en avez besoin ... de sorte que vous pouvez jeter des morceaux XML sans perdre du cpu si votre programme se surcharge).

Je voudrais essayer d'aller avec une classe de raw socket http : //www.adobe.com/livedocs/flash/9.0/main/00000318.html#wp128960 et un format de paquet personnalisé, un tableau où chaque index contient des données pertinentes. en psudocode:

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

de sorte que vous pourriez avoir un défini comme « événement déplacement de la souris »:

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

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

Ensuite, utilisez AMF http://en.wikipedia.org/wiki/Action_Message_Format sérialiser les données sur le fil.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top