Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.07.2010, 15:14
Basil.Sinkevich вне форума Посмотреть профиль Отправить личное сообщение для Basil.Sinkevich Найти все сообщения от Basil.Sinkevich
  № 1  
Ответить с цитированием
Basil.Sinkevich

Регистрация: May 2010
Сообщений: 12
По умолчанию задержка сообщений с java сервера

Товарищи, столкнулся вот с кокой проблемой. Есть сокет сервер на яве, есть клиент на AS3. На сервере для отправки данных кленту вот такой механизм
Код:
    PrintStream out = new PrintStream(user.getOutputStream());
    BufferedReader in = new BufferedReader(new InputStreamReader(user.getInputStream()));
    String str = in.readLine();
    out.print(str);
где user - сокет, в общем сервер только возвращает сообщение присланное клиентом
на стороне клиента код приблизно такой
Код AS3:
 
			this.xmlsock= new XMLSocket();
			this.xmlsock.addEventListener(DataEvent.DATA, onData);
			xmlsock.connect(this.address, this.port);
			xmlsock.addEventListener(Event.CONNECT,onConnect);
 
		public function onConnect(e:Event):void {
			xmlsock.send("Some string \n");
		}
		public function getout(line:String):void {
			xmlsock.send(line +"\n");
		}
		private function onData(e:DataEvent):void {
			trace(e.data)
                      }
Остальная часть кода интерес не предстваляет, я дума
Проблема собственно вот в чём: при выполнении функции onConnect сервер должен прислать ответ и должно произойти событие DataEvent.DATA, но этого не происходит, при вызове getout событие DataEvent.DATA происходит, но e.data="Some string"... т.е. получается, что клиенту приходят сообщения с задержкой в одну штуку. Я пробовал отсылать клиенту несколько сообщений без его запросов, но при всё равно при выполнении getout приходит то, что было отправлено сервером последним. Как быть?

Добавлено через 35 минут
Короче, похоже проблема в следующем, событие DataEvent.DATA выполняется только тогда, когда я данные отсылаю, при этом при приёме данных, они записыватся в e.data и соответственно выдаются при повторном запуске, а после этого в него записываются новые принятые данные, вот так, и что с этим делать непонятно

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.