Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Клиены вдруг начинают запрашивать у сокет сервера <policy-file-request/> (http://www.flasher.ru/forum/showthread.php?t=145515)

altermann 11.10.2010 02:19

Клиены вдруг начинают запрашивать у сокет сервера <policy-file-request/>
 
Здравствуйте.

Такая проблема:

Есть приложение в контакте и мейле, по сути - мультичат.
Клиент на flex 4, сервер - php.
Технически сервер - виртуальный выделенный сервер.
Клиент общается с серваком через сокеты.

Все хорошо, все работает, но, к вечеру ситуация становиться плачевной: когда набирается несколько десятков человек, клиенты, вдруг, начинают запрашивать <policy-file-request/>. Сервак отправляет кроссдомен, клиенты отключаются и больше связь не устанавливается. Если кто-то пытается подключиться новый - не получается, та же история...
Что может служить причиной данной проблемы? Не хватает ресурсов серва? По данным статистики юзаеться порядка 15%.
Решил сменить сервер, тот был у fastvps.ru, взял тестовый у ispserver.com - аналогично.

Спасибо.

Psycho Tiger 11.10.2010 13:55

Все на сокеты перешли и у всех одна проблема...
После запроса о файле политики клиент и должен отключится. А потом поднять новое соединение, но уже его не спрашивать.

altermann 11.10.2010 15:03

Я понимаю, что должен отключаться. У меня так все и работает. Клиент подключается, запрашивает файл, сервак отдает, клиент отключается, подключается на другой порт и работает нормально с сокетом. Но, иногда бывает так, что все работает, работает, сутки работает, а тут раз, и перестает..... обычно это под вечер, когда собирается много людей..
А что именно не работает описано выше....

etc 11.10.2010 17:56

Отдавать надо и по порту соединения тоже.

altermann 11.10.2010 19:48

так, допустим, я что-то не понял, что-то сделал не правильно, хотя код работы с сокетами я скопипастил, но, почему оно может работать нормально долгое время (час, два, три, сутки - когда как), а потом резко прекратить? Не выкладываю код, потому что, как мне кажется, в этом смысла нет, я просто в тупике уже.....

а отдается кроссдоменник у меня на оба порта (один класс коннекта к сокетам и работы с ними создается два раза - на два порта).

membrilius 11.10.2010 21:56

У Вас соединение теряется? Допустим может перезагружаться сервер, или проблемы в сокет-сервере, мониторте порт. Потому-что помойму когда флешка вдруг сама начинает слать <policy-file-request/> то это переподключение.

Проще сделать мотиноринг на сокет-сервере, пусть пишет всю историю в файл.

altermann 12.10.2010 00:38

Логи запросов в сокет и ответов у меня ведуться, вот пример, что происходит:

Код:

[2010-10-10 23:22:28] [SocketServer] Wrote : <response><request>changeGame</request><data><id>40</id><online>4</online><started>0</started></data></response>  to Resource id #74
[2010-10-10 23:22:28] [SocketServer] Wrote : <response><request>changeGame</request><data><id>40</id><online>4</online><started>0</started></data></response>  to Resource id #17044
[2010-10-10 23:22:28] [SocketServer] Wrote : <response><request>changeGame</request><data><id>40</id><online>4</online><started>0</started></data></response>  to Resource id #17466
[2010-10-11 03:22:38] [SocketServer] NEW CLIENT Resource id #1498 [IP: 85.141.193.53]
[2010-10-11 03:22:38] [SocketServer] Wrote : п»ї<cross-domain-policy>
  <allow-access-from domain="*" to-ports="5814"/>
</cross-domain-policy>  to Resource id #1498
[2010-10-11 03:22:38] [SocketServer] REMOVING CLIENT Resource id #1498
[2010-10-11 03:22:41] [SocketServer] NEW CLIENT Resource id #1503 [IP: 188.162.221.49]
[2010-10-11 03:22:41] [SocketServer] Wrote : п»ї<cross-domain-policy>
  <allow-access-from domain="*" to-ports="5814"/>
</cross-domain-policy>  to Resource id #1503
[2010-10-11 03:22:41] [SocketServer] REMOVING CLIENT Resource id #1503
[2010-10-11 03:23:06] [SocketServer] NEW CLIENT Resource id #1508 [IP: 82.196.90.237]
[2010-10-11 03:23:06] [SocketServer] Wrote : п»ї<cross-domain-policy>
  <allow-access-from domain="*" to-ports="5814"/>
</cross-domain-policy>  to Resource id #1508
[2010-10-11 03:23:06] [SocketServer] REMOVING CLIENT Resource id #1508


лога запроса, к сожалению, не сохранилось, только ответы, тем не менее, даже тут видно, что все было ок. В какой-то момент, как буд-то действительно все клиенты отключаются и начинают коннектиться заново, сервер отправляет кроссдомен и все, коннект не восстанавливается.
С чем может быть связано такое поведение сервера? Не хватает ресурсов? Не думаю, что не хватает, но мало ли. Получал такое уже на двух похожих виртуальных серверах разных хостеров.

Может быть это нормально и надо просто переустанавливать подключение? Как это сделать?

Спасибо.

altermann 15.10.2010 09:21

Походу, разобрался =)

Немного переписал скрипт + сделал небольшую тестовую утилзу.
Проблема очевидна - слишком много одновременных запросов. Даже самый лучший сервак вешался.... если убрать нагрузку, то становиться нормально.

Теперь надо думать как снижать нагрузку......


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

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