Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Непрерывное соединение: server-side = Comet, Red5 или что? (http://www.flasher.ru/forum/showthread.php?t=107275)

dimgel 29.01.2008 07:11

Непрерывное соединение: server-side = Comet, Red5 или что?
 
Всем привет! :)

Профи, подскажите пожалуйста, как организовать непрерывно открытое соединение с Java-сервером? Я нарыл флеш-сайт livegames.ru, который делает именно то, что мне нужно: гоняет данные туда и обратно через одно единственное непрерывно открытое соединение, без заголовков, и причём через порт 80! Как он это делает, ума не приложу. :umnik2:

Стандартная реализация Comet на Jetty, которую мне советовали, заточена под Ajax. Она обеспечивает непрерывный поток данных только от сервера клиенту, но клиент при этом вынужден отдавать полноценные запросы, с HTTP заголовками, естественно через отдельное TCP-соединение.

Начал было ковыряться в Red5, но похоже это вообще не то, что мне нужно.

Please Help!

etc 29.01.2008 10:51

Цитата:

Сообщение от dimgel
гоняет данные туда и обратно через одно единственное непрерывно открытое соединение, без заголовков, и причём через порт 80! Как он это делает, ума не приложу. :umnik2:

И что в этом загадочного? Обычный сокет по 80-ому порту. Или вы думаете, что 80-ый порт обязательно HTTP?

dimgel 29.01.2008 20:53

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

TERRORist 29.01.2008 21:57

+1
тож хочу узнать. полезно

etc 29.01.2008 22:53

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

IDVsbruck 03.02.2008 19:41

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

Декомпилировал флешки, оставленные в кеше после посещения этого сайта. Что интересно, мы перепробовали несколько вариантов взаимодействия с серваком (сокеты, флекс), но остановились на том, который сейчас работает: POST-запрос от клиента, обработка сервером и возврат ответа в виде xml-структуры, которая парсится и которая достаточно универсально понимается при любом виде запросов.
Так вот, на данном сайте используется точно такая же структура - отправка запроса и получение xml. Это, кстати, решает все поставленные в данном топике вопросы: и про порты, и про непрерывность, и про мультигейминг.

MyXus 05.02.2008 13:48

только про нагрузку не решает -)

IDVsbruck 05.02.2008 20:10

Почему? С чего такие выводы?

7thsky™ 12.02.2008 04:10

Есть еще реализация comet'а - http://www.lightstreamer.com/ - там даже библиотеки под флэш (ас1, ас2, ас3) есть.

dimgel 18.02.2008 01:32

Всем спасибо, итоги здесь (сорри за кросс-пост на другой форум, лениво копировать и заново форматировать).

Ключевые слова для поиска: Comet, Jetty, Continuations, Tomcat, CometProcessor, CometEvent, Content-Encoding: chunked.

dimgel 18.02.2008 01:33

P.S. 7thsky, спасибо за ссылку, но я к тому времени уже практически решил проблему. В другой раз гляну, как время будет.

IDVsbruck 18.02.2008 13:56

event.setTimeout(xxx) служит для того, чтобы система знала, через сколько возвращать ответ, если не возникло события, по которому ответ должен уйти клиенту.
Другими словами, если от флешки нет "возбудителя" запросов, а на сервере - ответов, то при строке event.setTimeout(5000) флеш и сервер будут обмениваться пакетами каждые 5 секунд.


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

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