Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   задержка сообщений с java сервера (http://www.flasher.ru/forum/showthread.php?t=142526)

Basil.Sinkevich 23.07.2010 15:14

задержка сообщений с 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, время: 07:13.

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