PDA

Просмотр полной версии : onData & XMLSocket


adelante
19.07.2004, 08:23
Всем привета.
Интересно следующие как проверить пришли ли данные, посланные сервером клиенту и если нет, то как подсчитать необходимое время для выполнения этой операции.

Iv
19.07.2004, 14:04
my_xml = new XML();
my_xml.load("my.xml");
_root.start_time = getTimer();
my_xml.onData = function(s) {
_root.time_for_load = getTimer()-_root.start_time;
if (s != null) {
this.loaded = true;
this.parseXML(s);
this.onLoad(true);
} else {
this.loaded = false;
this.onLoad(false);
}
};

Nucer
20.07.2004, 02:29
Ты именно про XMLSocket спрашиваешь? Во-первых, кто должен это проверять?
Если флэш, то всё просто, каждое сообщение заканчиваеться символом 0x00.
Если сервер, то тоже непонятно в чём проблема. Ведь работа с сокетом аналогична работе с файлом т.е. является синхронной операцией (как в общем то и всё остальное) и пока передача не будет завершена, программа дальше не пойдёт.
Так в чём проблема то?

adelante
20.07.2004, 06:59
Ты именно про XMLSocket спрашиваешь?
-> Да
Во-первых, кто должен это проверять?
-> Flash
Если флэш, то всё просто, каждое сообщение заканчиваеться символом 0x00.
LastIndexOf("0x00")- так или нет ????

Nucer
20.07.2004, 15:32
Да нет же. Когда сервер отправляет флэш-клиенту какие-нибудь данные, последним символом должен идти нуль. Тогда во флэше будет срабатывать событие XMLSocket.onData.
Это кстати всё в хелпе есть...

adelante
21.07.2004, 04:14
Я понимаю, что каждый коннект заканчивается 0 , но вопрос был, как проверить пришли ли данные, если точно знаешь что должны были прийти

Nucer
21.07.2004, 14:11
Для этого существует событие XMLSocket.onDataXMLSocket.onData = function( src )
{
// your statements here
}

adelante
22.07.2004, 07:50
Для этого существует событие XMLSocket.onData
Это ясно, но не в том проблема!

Объясняю, скажем у меня мувик посылает запрос серваку и ждет два кадра на ответ, но какие-то помехи, загруженность сервера не позволяют обработать данные и он присылает ответ скажем через 5 минут. Как мне заставить мувик подождать на ответ.

Nucer
22.07.2004, 23:45
Опять же юзай onData. Когда приходят нужные данные, переходи на нужный кадр или делай то, что нужно.

adelante
23.07.2004, 07:23
Опять же юзай onData. Когда приходят нужные данные, переходи на нужный кадр или делай то, что нужно.
Да, можно, но не в этом случае т.к. у меня команды приходящие из сервера 1 и 0.
Может, кто знает, сколько поставить задержку на ожидание данных при расчете на среднюю загруженность сервера?
:(

Nucer
23.07.2004, 14:31
Да никак бля. Делаешь функцию, в которую запихиваешь действия если пришла единичка. Ещё одну для нуля. Потом отправляешь данные. А в onData ставишь выполнять свои функции, в зависимости от пришедших данных.