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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

Регистрация: Mar 2010
Сообщений: 25
Как раз по моему ASP.NET бесплатная вещь: скачал Visual Web Developer Express Edition и создавай сайты с помощью ASP.NET сколько угодно. А хостинг для ASP.NET стоит не намного дороже, а вот для Java хостинга вовсе нет.
Что касается PHP - серьёзный вариант, но опять же вопрос: могу ли я запрограммировать взаимодействие пользователей не через записывание и считывание данных из базы данных, а через оперативную память.
И вопрос по быстродействию: что быстрее и во сколько раз.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от nns2009 Посмотреть сообщение
а вот для Java хостинга вовсе нет.
Есть - brim.ru, GAE

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Сообщение от nns2009 Посмотреть сообщение
Что касается PHP - серьёзный вариант, но опять же вопрос: могу ли я запрограммировать взаимодействие пользователей не через записывание и считывание данных из базы данных, а через оперативную память.
Memcahe

Единственно, игр "вообще" не существует.
Взаимодействие пользователей на уровне онлайнового шутера в духе CS на PHP еще вроде никому реализовать не удалось. Взаимодействие на уровне "заглянул в огород соседу, пока его нет, и напакостил там как-нибудь" - можно и на PHP.

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

Регистрация: May 2009
Сообщений: 223
Записей в блоге: 1
Юзай java. Особенно просто и быстро писать сервак на Apache Mina. Но я лично смотрю в сторону Erlang, пусть и для понимания сложен, но думаю он того стоит.

Старый 26.04.2010, 19:32
nns2009 вне форума Посмотреть профиль Отправить личное сообщение для nns2009 Найти все сообщения от nns2009
  № 5  
Ответить с цитированием
nns2009

Регистрация: Mar 2010
Сообщений: 25
А на Java можно ли создавать шутеры и тому подобные игры? И как это всё происходит: запускается приложение, которое ловит подключение пользователей, разбивает их по сокетам и 40 раз в секунду обновляет состояние игры в зависимости от нажатий пользователей: так, или как-то по-другому? Возможно ли встраивание кода Java в HTML код страницы, как в PHP и ASP.NET?
А клиентские приложения на Java, которые требуют дополнительной установки, они только для браузера или для компьютера с мобильным телефоном тоже?


Последний раз редактировалось nns2009; 26.04.2010 в 19:37.
Старый 27.04.2010, 10:16
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от nns2009 Посмотреть сообщение
разбивает их по сокетам и 40 раз в секунду обновляет состояние игры в зависимости от нажатий пользователей: так, или как-то по-другому?
Вы путаете с вариантом ответ/запрос по http.
При использовании сокетов предпочтительнее другая архитектура, хотя многие, даже используя сокеты - шлют пинги, по-привычке, либо потому, что не знают другого способа.
Здесь больше подходит абстракция с событиями и MVC.
Т.е. клиенты послают сообщение о наступлении некоего события(нажатия, либо уже вычисленного на клиенте действия), в момент когда оно наступило ( тафтология, но зато понятнее).
Сервер отсылает свои события заинтересованным клиентам.
Представьте клиенты как некие вьюшки, а сервер как контроллер и модель (база данных).
Подпиской/отпиской событий и рассылкой занимается контроллер сервера. он-же при изменении данных отсылает события об изменении модели, либо напрямую вызывает команды в клиентах (через командные сообщения)

Это моё личное предпочтение архитектуры, можно сделать свыше 9000 других архитектур, например используя дуальную систему RemoteObject ( опять-же это ответ/запрос, но без пинга, а в нужный момент)

Если вы имеете в виду под состоянием игры - снимки состояний клиентов, то это тоже не очень верный подход, лучше использовать дельты состояний - опять вернулись к событиям)))))
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 27.04.2010 в 16:56.
Старый 27.04.2010, 11:03
Crenth вне форума Посмотреть профиль Отправить личное сообщение для Crenth Найти все сообщения от Crenth
  № 7  
Ответить с цитированием
Crenth
 
Аватар для Crenth

Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
дельты состояний хороший если вероятность потери пакетов в канале клиент-сервер равна нулю


Котяра, а поделитесь теорией модели "без пингов". В двух словах.
Я так понимаю, что есть 2 способа узнать, жив ли клиент:
а) слать ему пинги и ждать АСК-и (нет АСК-а - клиент умер)
б) следить за состоянием сокета (сокет умер - клиент умер)

или тут речь о беспинговой технике в другом контексте ?

Старый 27.04.2010, 16:26
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 8  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Скорее б) + некий таймер откликов (сокет не всегда отваливается явно - бывают странные глюки сервер<-> браузер <-> флэшплеер)
Про потери пакетов - считаем что на сокете == 0.
Я, по крайней мере, не встречал проблем, ни на сиплюсных, ни на явовских серверах с этим.
На tcp уровне и так существует своя система пингов и проверок, которая ДОЛЖНА вызывать ошибки подключения/отправки, а вот если спускаемся ниже, до UDP (который вроде будет когда-то работать в p2p flash) - там такой гарантии нет.

Для примера, поищите каким образом происходит общение во "взрослых" MMO играх - там тоже всё на сообщениях и чанках.
UPD - для чайников
расширенно ( рекомендую Q8)
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 27.04.2010 в 17:13.
Старый 27.04.2010, 19:07
Crenth вне форума Посмотреть профиль Отправить личное сообщение для Crenth Найти все сообщения от Crenth
  № 9  
Ответить с цитированием
Crenth
 
Аватар для Crenth

Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
вы все же не раскрыли тему беспинговых управляемых коннектов.

я немного в теме сокетов. и тоже сталкивался со странными отваливаниями. но как ни странно, что странно , в таких случаях у меня на ФП смерть сокета сразу выявляется, а не сервере - не всегда.

поэтому я все же юзаю связку пинг+АСК. если АСК не пришел в ожидаемом интервале, я тупо закрываю сокет.

Старый 27.04.2010, 21:42
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Пинг для проверки коннекта - это одно, а протокол, вернее архитектура общения клиент-сервер,это немножко другое.
Давайте определимся с терминологией...
Я сам может и путаю(сь).
есть 2 типа общения:
1)запрос/ответ - клиент посылает запрос и получает на него ответ
2) сообщения. - и клиент и сервер могут отправить сообщение друг другу в любой момент времени.
1 - поддерживается и http и сокетом
2 - только при установленном полнодуплексном коннекте, т.е. либо сокет, либо http-CONNECT, либо http эмуляция через пинги.
2 - это громадное и основное преимущество сокетов, экономящее трафик, ресурсы и нервы.
пинги - это запрос-ответ с неким интервалом.

Теперь другой аспект: Каким образом может быть организована передача данных?
опять 2 варианта:
1) по состоянию (слепок мира)
2) по событиям ( дельта элементарных состояний, или, можно сказать - изменение данных Модели)

2 вариант - опять же предпочтительнее, и легче всего его реализовать с помощью сокетов, хотя можно и по http c эмуляцией постоянного коннекта через пинги: "есть чо?".

2Crenth
Твой (если позволите ) вопрос состоит скорее - как отловить обрыв сокета и проследить передачу ВСЕХ данных?
Это - другая задача, которая имеет больше решений чем одно (пингами)
С ходу - вариант (нечто подобное использовалось в реале):

1- при отсылке/приёмке запоминаем таймстамп на клиенте и сервере (полезно также для синхронизации по-времени)
2- можно вести счетчик сообщений (отдельно для сервака, отдельно для клиента) для проверки "доходимости" пакетов, хотя это лишнее, сокет либо рвётся - либо нет.
3- отслеживаем обрыв сокета на клиенте и сервере.
4- при обрыве на клиенте пробуем приконнектится по-новой.
5- при превышении лимита таймаута на сервере (определяется по логике игры) сервер посылает пинг :"ау- ты живой" - при отрицательном ответе оканчивает сессию клиента.

Всё это кажется на первый взгляд громоздким, но это десяток строчек кода максимум

Добавлено через 37 часов 35 минут
Цитата:
Сообщение от Crenth Посмотреть сообщение
я немного в теме сокетов. и тоже сталкивался со странными отваливаниями. но как ни странно, что странно , в таких случаях у меня на ФП смерть сокета сразу выявляется, а не сервере - не всегда.
Я поэтому и говорил о сервер<-> браузер <-> флэшплеер, а не сервер<->флэшплеер.
Существует мнение (не моё), что некий остаточный коннект остаётся между сервером и компом.
Кто его держит не понятно, то-ли ось, то-ли браузер, а может и вообще какой маршрутизатор или фаервол.
__________________
Отряд Котовскага

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

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

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


 


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


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