Как разбить пакеты во flash, XMLSocket
Здравствуйте, я считаю, что мой флэш-клиент теряет некоторые пакеты, которые отправляет сервер, потому что некоторые пакеты объединяются вместе, поэтому я считаю, что он отбрасывает их.
Вот мой пакет Хендлер во флеше
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 ...
}
}
Возможный пакет, который я прослушал, был отправлен сервером.
и:105.w. ака (75 3A 31 30 35 00 77 00)
поэтому ожидающий пакет так и не поступил.
Как мне исправить ошибку? Я использую XMLSocket.
2 ответа
Решение
К решил, если кому-то нужна помощь с этим, оказывается, вы можете просто сделать это
пакеты var:Array = data.split("\x00");