![]() |
|
||||||||||
|
|
|
|||||
|
Речь идет об он-лайн играх и в частности об играх под социальные сети.
Суть: обмен с сервером в игре реализован через сокет. Часть юзеров не может играть, так как порты для сокета у них там в файрволлах и админках заблочены. Задача: установить факт нефункционирования сокета ( таймаут и т.п. - тривиально ) и включить альтернативный протокол обмена с сервером, чтобы юзерок играть все-таки смог. Вопрос: что наиболее близко к сокету, и как кто данную задачу решил ( если она вообще решаема и на таких юзеров просто не следует плюнуть ). Нюанс: сокет - асинхронный, http запросы - синхронные. Логику обмена придется просто напросто писать вторую, и, как мне кажется, полностью. Соотв. все обновления и модификации придется делать дважды - в обоих протоколах. Поступило предложение юзать long-poll, как некий закос под асинхронность. Который в свою очередь также любит резаться проксями и антивирами. Кто что скажет, посоветует, приведет примеры реализации? |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
Можно завести один только событийный протокол. 1 коннектимся по сокету. 2 потом long-poll http-CONNECT 3 обычный ping для проверки сообщений с сервера и отправка сразу при отправке. Стандартный набор.
__________________
Отряд Котовскага |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Главное - прикиньте просто по бабкам - выгодно ли такое делать? Одной моей подруге с её парнем было не выгодно.
Если таки да, то рекомендую сделать второй сервак, к которому коннектится бессокетный клиент, затем этот сервак коннектится уже сокетом к основному и основной (почти) не подозревает, что клиент бессокетный.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
брррр...
Цитата:
__________________
Отряд Котовскага |
|
|||||
|
long-poll http-CONNECT
Так. Я слышал что у nginx таймаут этой фигни 60 сек, потом начинаются траблы? У нас сейчас вариант - 50 сек держать, потом реконнект. Но 50 сек для файрволла.... Как-то..... Потому вариант два - 6 сек, реконнект.... В общем случае серверщик задвинул тему вообще пинговать серв раз в 1 (одну) секунду.... и смотреть что нам приходит..... но это же бред? |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
это 3 вариант - если не проходит long-poll
вполне себе нормально для нереалтайма. (карты и фермы) Гена ничего такого страшного в этих схемах нет. главное продумать систему пакетов. чтоб по пингу отправлялся пакет накопленных сообщений. от клиента при каждой отсылке ,кстати берём заодно и всё что накопилось. и сдвигаем таймер. просто по сокету данные шлются сразу. по лонгполю (почти) тоже, а по пингу просто добавляются в пакет, который как только клиент что-то спросит отправляется и очищается.
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 09.08.2011 в 13:16. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|