Показать сообщение отдельно
Старый 03.06.2011, 13:11
Arigama вне форума Посмотреть профиль Отправить личное сообщение для Arigama Найти все сообщения от Arigama
  № 3  
Ответить с цитированием
Arigama

Регистрация: Dec 2010
Сообщений: 9
Спасибо, попробуем!

Сейчас вместо gateway.php подставить обычный скрипт с echo.
На прямую из оперы открывается без проблем, всегда четко независимо от частоты запросов.
Но из флеша запросы валятся периодически также, ответа тупо нет (вообще).
Создается впечатление что ошибка всё-таки на клиенте и запросы до сервера просто не доходят. Либо в амфхпхп есть хитрый параметр таймаута отправки запроса...

Добавлено через 16 минут
Проверил access.log - похоже при ошибке запрос просто не доходит до сервера =(
То есть проблема 99% на клиенте. И запрос 1 единственный проходит, точнее не проходит...

Добавлено через 7 часов 7 минут
В общем сделали голое совершенно приложение со следующим содержанием:
Код AS3:
package {
	import flash.display.Graphics;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.events.NetStatusEvent;
	import flash.net.NetConnection;
	import flash.net.Responder;
	import flash.text.TextField;
 
	/**
	 * ...
	 * @author Gene Pavlovsky
	 */
	public class Main extends Sprite {
		private var btnLogin:MovieClip;
		private var txtResponse:TextField;
 
		private var connection:NetConnection;
		private var responder:Responder;
		private var responder2:Responder;
 
		public function Main():void {
			if (this.stage)
				this.init();
			else
				this.addEventListener(Event.ADDED_TO_STAGE, this.init);
		}
 
		private function init(e:Event = null):void {
			this.removeEventListener(Event.ADDED_TO_STAGE, this.init);
 
			this.btnLogin = new MovieClip();
			this.btnLogin.buttonMode = true;
			var g:Graphics = this.btnLogin.graphics;
			g.beginFill(0xff0000);
			g.moveTo(0, 0);
			g.lineTo(100, 0);
			g.lineTo(100, 20);
			g.lineTo(0, 20);
			g.lineTo(0, 0);
			g.endFill();
			this.addChild(this.btnLogin);
 
			this.txtResponse = new TextField();
			this.txtResponse.multiline = true;
			this.txtResponse.width = 400;
			this.txtResponse.height = 600;
			this.txtResponse.y = 30;
			this.addChild(this.txtResponse);
 
			this.btnLogin.addEventListener(MouseEvent.CLICK, onLoginClick);
 
			this.responder = new Responder(onResult, onFault);
			this.connection = new NetConnection();
			this.connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
			this.connection.connect('http://dev.arigama.ru/test/test.php');
			this.onLoginClick();
		}
 
		private function onNetStatus(e:NetStatusEvent):void {
			this.txtResponse.appendText('\nNet status:' +
				'\ncode=' + e.info.code +
				'\nlevel=' + e.info.level);
			this.txtResponse.scrollV = this.txtResponse.maxScrollV;
		}
 
		public function onLoginClick(e:MouseEvent = null):void {
			this.txtResponse.appendText('\nlogin() ');
			this.txtResponse.scrollV = this.txtResponse.maxScrollV;
			this.connection.call('AuthService.login', this.responder, 'user', 'pass');
		}
 
		private function onResult(result:Object):void {
			var message:String = 'success';
			this.txtResponse.appendText(message);
			this.txtResponse.scrollV = this.txtResponse.maxScrollV;
		}
 
		private function onFault(status:Object):void {
			var message:String = ('description' in status) ? status.description : status.toString();
			this.txtResponse.appendText('\nFault: ' + message);
			this.txtResponse.scrollV = this.txtResponse.maxScrollV;
		}
	}
}
При многократном клике 1 из 20 запросов в среднем выдает Failed в Опере (на остальные - BadVersion, это норм тк подключение идет не к amfphp). Первый запрос проходит как правило нормально (бывает и фейлится, но очень редко).
Протестить можно тут http://dev.arigama.ru/test/test.swf, кликая на красную кнопку (но ошибка есть не на всех компах). Обычно будет выдавать BadVersion и иногда Failed.

Есть идеи как это вылечить и в чем может быть дело?

Добавлено через 19 часов 34 минуты
$100 на кошелек - тому, кто поможет решить проблему

Добавлено через 67 часов 30 минут
Неужели никто не сталкивался с подобным? (


Последний раз редактировалось Arigama; 03.06.2011 в 20:24.