Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Не совсем понятна реализация многопользовательского приложения (http://www.flasher.ru/forum/showthread.php?t=138745)

Arbis 15.04.2010 07:02

Не совсем понятна реализация многопользовательского приложения
 
Доброй ночи :)
Решил попробовать сделать многопользовательское приложение на флеш.
Почитал на сайтах. Как я понял флеш по большому счету только графическая оболочка, на стороне клиента, а все операции выполняются на сервере. Впринципе с одной стороны ничего сложного, но с другой не пойму одной вещи. К примеру пользователи ищут 10 отличий на картинке, "кто первый нашел тот и молодец".
Пользователь тыркнул в отличие - серверу отправился запрос, в базе его счетчик увеличился на 1.
Как об этом узнает второй пользователь - если мну правильно понимает то он должен делать постоянно запросы в базу и проверять не увеличился ли счетчик первого.
Вот тут в мой мозг и забираются смутные сомнения... пусть по 3 запроса в секунду, если в онлайне 1000 пользователей это 3000 запросов. И вот собссно сам вопрос: А выдержит ли сервер? Или я что-то не правильно понимаю :o

Juice_Green 15.04.2010 10:43

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

iflamberg 15.04.2010 11:28

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

Если не на сокетах делать, то это - с помощью http-запросов. Тогда это выглядит примерно так: клиент - серверу: "ну, кто там тыкнул?". Сервер-клиенту: "за время вашего отсутствия тыкнул этот, этот и этот. Этот отгадал."
Такой способ намного медленнее.
А насчет выдержит сервер - это зависит от реализации. При реализации "запросами", просто обычно используют пхп или перл и это влияет на производительность (+ веб-сервер организует передачу данных и жрет ресурсы). Если сделать сокет-сервер на пхп, то он тоже не справится с 1000 пользователей.

Arbis 15.04.2010 16:31

Juice_Green, iflamberg спасибо :)
Цитата:

Если сделать сокет-сервер на пхп, то он тоже не справится с 1000 пользователей.
Лучше на Яве?

etc 15.04.2010 18:43

Цитата:

Сообщение от Arbis (Сообщение 900784)
Juice_Green, iflamberg спасибо :)
Лучше на Яве?

Лучше на си.

Dimitry_II 16.04.2010 12:49

С недавних пор это уже стало спорным вопросом.

incoob 16.04.2010 15:39

Цитата:

Сообщение от Dimitry_II (Сообщение 901086)
С недавних пор это уже стало спорным вопросом.

Можно поподробнее?

Nirth 16.04.2010 15:56

Если не использовать J2EE и вообще не усердствовать с фреймворками, то скорость Java во многом догоняет C, но опять же – не надо переусердствовать с подключаемыми фреймворками.

Если сервер будет оперировать с кучей листов, деревьев и тд – То лучший выбор это Erlang или Scala. Вообще функциональные языки, лучше ООП и Процедурных справляются с обработкой данных.

Если сервер будет скалироватся, и должен подерживать тысячи юзерей, опять же мой выбор бы пал на Erlang, Scala, Haskell, а не C/C++.

C/C++ оптимальный выбор, когда фиг поймет, что вообще требуется.

Arbis 18.04.2010 02:41

Ну C/C++ мне как то ближе. Ибо ни Erlang, ни Scala, ни Haskell я в упор не знаю :D Большое спасибо за ответы


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

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