|
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
Избегание отсылки двойного запроса
У меня по таймеру отправляются запросы, иногда сервер тупит не успевает за время между запросами ответить и отсылаются два запроса то есть получаем два идентичных ответа. Что бы этого не был я ввёл переменную которую при отсылке запроса меняем на false а при ответе на true. И запросы не отсылаются если пeременная false. Есть ли более рациональный способ избежать двойных запросов или эт норм система?
|
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
во норм, надо будет скоро переходить на сокет сервер, как тока разбогатею перейду х)
он же меньше ресурсы сервера потребляет. |
|
|||||
Цитата:
Цитата:
__________________
тут я |
|
|||||
.
|
Считаю, что вполне нормально отправлять следующий запрос после получения положительного ответа от предыдущего, в том числе с отсрочкой отправления по таймеру.
|
|
|||||
[+4 06.05.14]
|
Цитата:
__________________
Марк Tween |
|
|||||
.
|
Кор, это обычная практика работы с Socket и URLStream. Вот только про hash я тоже не понял.
Обычно это решается протоколом, где каждый пакет предваряется записью о его длине. Пока в промежуточном буфере чтения (после извлечения данных из сокета) нет такого количества данных, этот пакет не считается загруженным. |
|
|||||
[+4 06.05.14]
|
Дима, ну я своим велосипедом пользуюсь, меня он устроил вот таким , только не хеш, а буффер, голова просто кипит седня
private function onResponse(e:ProgressEvent):void { var str:String = socket.readUTFBytes(socket.bytesAvailable); var check:String = str.slice(str.length - 6); if (check != "&2&2&2") { buffer += str; return; } else { if (buffer.length) { str = buffer + str; buffer = ""; } } this.dispatchEvent(new SocketServerEvents(SocketServerEvents.RESPONSE, str)); }
__________________
Марк Tween |
|
|||||
.
|
Проблема в том, что UTF — это многобайтовая кодировка. Ты не можешь прочитать последний символ, если в payload, например, пришла только часть его.
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
in4core помню Вы даже обругали кого-то за подобный код, только на пхп...
Почему бы просто не написать esle if( buffer.length ) ? Ответ - я просто из контекста выдернул не считается, Вы накинулись у человека не спросив его псевдо это код или нет. |
Часовой пояс GMT +4, время: 02:23. |
|
« Предыдущая тема | Следующая тема » |
|
|