Как разбить пакеты во flash, XMLSocket - PullRequest
0 голосов
/ 27 августа 2010

Здравствуйте, я полагаю, что мой флэш-клиент теряет некоторые пакеты, отправляемые сервером, потому что некоторые пакеты объединяются, поэтому я считаю, что он отбрасывает их.

Вот мой пакетHandler во флэш-памяти

  private var xmlsock:XMLSocket;
  this.xmlsock = new XMLSocket();
  xmlsock.connect("127.0.0.1", 1234);
  this.xmlsock.addEventListener(DataEvent.DATA, this.packetHandler);


  public function packetHandler(event:DataEvent):void {
   var packet:String = event.data;
   var args:Array = packet.split(":");
   if(args.length <= 0) return;

   switch(args[0]) {
    case 'w': //waiting
     ExternalInterface.call("waiting");
     break;
    case 'u': //user count
     if(args.length >= 2)
      ExternalInterface.call("userCount", args[1]);
     break;
                                //... etc handlers ...
   }
 }

Возможный пакет, который я прослушал, отправленный сервером, был.

u: 105.w.aka (75 3A 31 30 35 00 77 00)

так что ожидающий пакет так и не поступил.

Как мне исправить эту ошибку ... Я использую XMLSocket

Ответы [ 2 ]

1 голос
/ 30 августа 2010

К решено, если кому-то нужна помощь в этом, оказывается, вы можете просто сделать это

var packages: Array = data.split ("\ x00");

0 голосов
/ 27 августа 2010

Используйте flash.net.Socket вместо.

...