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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.12.2014, 16:09
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 1  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
По умолчанию Избегание отсылки двойного запроса

У меня по таймеру отправляются запросы, иногда сервер тупит не успевает за время между запросами ответить и отсылаются два запроса то есть получаем два идентичных ответа. Что бы этого не был я ввёл переменную которую при отсылке запроса меняем на false а при ответе на true. И запросы не отсылаются если пeременная false. Есть ли более рациональный способ избежать двойных запросов или эт норм система?

Старый 18.12.2014, 16:29
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
норм система. Есть еще hash для сокет ответов, когда запрос может рубиться на 2 и более кусков.
__________________
Марк Tween

Старый 18.12.2014, 17:09
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 3  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
во норм, надо будет скоро переходить на сокет сервер, как тока разбогатею перейду х)
он же меньше ресурсы сервера потребляет.

Старый 18.12.2014, 18:29
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
он же меньше ресурсы сервера потребляет.
Что это значит? Как будет написан, так и будет потреблять. Открою тайну: все работает через сокеты. Даже обычные HTTP запросы открывают сокеты.

Цитата:
Есть еще hash для сокет ответов, когда запрос может рубиться на 2 и более кусков.
Не понял тебя, что за hash и почему запросы вдруг могут рубиться на части?
__________________
тут я

Старый 18.12.2014, 21:41
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Считаю, что вполне нормально отправлять следующий запрос после получения положительного ответа от предыдущего, в том числе с отсрочкой отправления по таймеру.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 18.12.2014, 22:01
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Не понял тебя, что за hash и почему запросы вдруг могут рубиться на части?
Недавно писали под сервер на дельфе. Суть такая, что отправляем запрос до сервера, если у него получается большой КУСОК данных в ответ, то он делить ответы на куски, сначала в первом ответе приходит 1 часть текста потом другая, просто пачки данных, а их надо соединить, чтобы получить не обрубленный хмл, как то так.
__________________
Марк Tween

Старый 18.12.2014, 22:16
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Кор, это обычная практика работы с Socket и URLStream. Вот только про hash я тоже не понял.
Обычно это решается протоколом, где каждый пакет предваряется записью о его длине. Пока в промежуточном буфере чтения (после извлечения данных из сокета) нет такого количества данных, этот пакет не считается загруженным.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 18.12.2014, 22:23
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Дима, ну я своим велосипедом пользуюсь, меня он устроил вот таким , только не хеш, а буффер, голова просто кипит седня

Код AS3:
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

Старый 18.12.2014, 22:34
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Проблема в том, что UTF — это многобайтовая кодировка. Ты не можешь прочитать последний символ, если в payload, например, пришла только часть его.

Код AS3:
socket.readUTFBytes(socket.bytesAvailable);
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 18.12.2014, 22:50
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 10  
Ответить с цитированием
Gerbert
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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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