Показать сообщение отдельно
Старый 26.01.2008, 03:52
Ajshma вне форума Посмотреть профиль Отправить личное сообщение для Ajshma Найти все сообщения от Ajshma
  № 1  
Ajshma

Регистрация: Jan 2008
Сообщений: 23
Attention Не срабатывает LocalConnection

Вообщем был написан буфер между сервером и играми на флеше 8 и 9, который передает данные от сервера к игре и обратно.
Общение посредством LocalConnection.
Работает все отлично, но вот беда - если данные очень быстро передаются, то первая часть проходит, а остальные теряются. Весь код писать не буду, но вот пример.
Клиент-буфер:
Код:
AVM_lc = new LocalConnection();
AVM_2c = new LocalConnection();
AVM_2c.allowDomain('*');
AVM_2c.client = this;
AVM_2c.connect("_As2toAs3");
// всякая всячина

private function parser(s:String):void {
		var xml:XML =new XML(s);
		node = xml.name().localName;
		 if (node== "m") {
			 AVM_lc.send("_As3toAs2", "messages", xml);
		}
	}

//==================
Игра
Код:
AVM_1c = new LocalConnection();
AVM_2c = new LocalConnection();
AVM_1c.allowDomain('*');
AVM_1c.client = this;
AVM_1c.connect("_As3toAs2");
// тоже всякая всячина

// Функция получение от клиента сообщение в ксмле
	public function messages(xml:XML):void {
		
		var number_cadr:String; // Номер кадра на карте
		var nodes:XML = new XML();
		nodes = xml.children()[0];
// и так далее
Так вот сервер отправляет очень быстро сообщения по сокету и клиент парсит это и перенаправляет по локал конекшину игре. Сообщения от сервера приходят - проверено. Клиент отправляет по локалконекшн соединению - тоже проверено. Игрка получает - все впорядке. Но если отправить в доли секунды несколько сообщений - то игра принимает только первое - остальные как будто заглушаются первым.
Ставить ограничение по времени на клиенте - нельзя, ибо игры быстрые, мультиплеерные, синхронизируются, как милисекунда на счету.
У какого какие мысли? Может я что то не так сделал или это особенность LocalConnection?