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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.11.2016, 13:26
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Long poll Error 2032

Здравствуйте коллеги. Что случилось с URLLoader'om, кто подскажет, или в чём может быть проблема, после секунд 6-7 ожидания от сервера ответа, отдаёт StreamError 2032. Реализация лонг-пулл соединения накрывается медным тазом.
Использую 22 AIR
__________________
return this...

Старый 03.11.2016, 13:31
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Не уверен, что URLLoader годится для лонг пула.
Я для мгновенных уведомлений просто создавал tcp сокет, в который сервер присылал код (1 байт), обозначающий какой запрос необходимо выполнить. Ну и ещё код пинга, для проверки активности соединения периодически отправлялся сервером и возвращался клиентом.
__________________
Дети не должны знать о своих родителях

Старый 03.11.2016, 13:34
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 3  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
надо подумать...
__________________
return this...

Старый 03.11.2016, 13:48
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Вообще, лонг пул на http - это скорее как костыль, или хак. Протокол http изначально создавался для мгновенных запросов, а не для поддержания активного интернет соединения. Если нужно активное интернет соединение, для этого есть отдельные инструменты и протоколы.
__________________
Дети не должны знать о своих родителях

Старый 03.11.2016, 13:56
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 5  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Дело в том что уже реализовал сервер на Java, причем геймплей пошаговый с задержкой не более 13 секунд ( автоматический переход хода) и вот в один прекрасный миг, мир рухнул. Странно то что в отдельном проекте, конект свободно держиться 30 секунд ( по логике, если сервер в оверхеде (к примеру большая выборка из базы данных, конект должен держаться ), а тут на тебе. Мб, в паралели еще идут подключения, и по специцикации HTTP ( не больше 2-х запросов на один домен ) URLLoader начал обрывать соединения, вот и думаю. Или отказываться от long pull или пересаживать на URLStream ( другие варианты )

Добавлено через 2 часа 32 минуты
А нет ли каких нить параметров среды, в которых можно выставить лимит ожидания ответа от сервера?

Добавлено через 3 часа 6 минут
нашлась багинка. оффтоп
Код AS3:
private function createUrlRequest(checkUrl:String):void {
      DIRECTIVE::MOBILE {
        if (checkUrl == "") {
          checkUrl = "https://www.google.com";
        }
        _testRequest = new URLRequest(checkUrl);
        _testRequest.useCache = false;
        _testRequest.cacheResponse = false;
        _testRequest.idleTimeout = 6000;
      }
    }
__________________
return this...

Старый 06.11.2016, 20:14
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 6  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
Есть еще http клиенты (альтернативы URLLoader и URLStream) с контролем всех таймаутов на базе socket, первое что нашел https://github.com/gabriel/as3httpclient
А в целом лонг пул уже мало кто использует, он был популярен во времена когда javascript не умел открывать socket соединение, а нужен был реалтайм. Сейчас есть более грамотные альтернативы такие как https://ru.wikipedia.org/wiki/WebSocket

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

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

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


 


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


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