![]() |
Не совсем понятна реализация многопользовательского приложения
Доброй ночи :)
Решил попробовать сделать многопользовательское приложение на флеш. Почитал на сайтах. Как я понял флеш по большому счету только графическая оболочка, на стороне клиента, а все операции выполняются на сервере. Впринципе с одной стороны ничего сложного, но с другой не пойму одной вещи. К примеру пользователи ищут 10 отличий на картинке, "кто первый нашел тот и молодец". Пользователь тыркнул в отличие - серверу отправился запрос, в базе его счетчик увеличился на 1. Как об этом узнает второй пользователь - если мну правильно понимает то он должен делать постоянно запросы в базу и проверять не увеличился ли счетчик первого. Вот тут в мой мозг и забираются смутные сомнения... пусть по 3 запроса в секунду, если в онлайне 1000 пользователей это 3000 запросов. И вот собссно сам вопрос: А выдержит ли сервер? Или я что-то не правильно понимаю :o |
варианта два,
первый - реализовать на сокетах, тогда "вторые пользователи" будут узнавать это почти мгновенно второй - каждый пользователь будет посылать покеты серверу на предмет отгадывания предметов другими, но сами понимаете что такие пакеты нужно слать очень приочень часто, так что реализуйте сокет сервер и будет вам счастье |
Ну чуть раскрою про сокеты. Сокет-соединение означает, что между клиентом и сервером постоянно висит открытый канал. Когда от одного из клиентов приходит "я тыкнул", то сервер должен отослать всем сообщения "он тыкнул" и "он попал"/"он не попал".
Если не на сокетах делать, то это - с помощью http-запросов. Тогда это выглядит примерно так: клиент - серверу: "ну, кто там тыкнул?". Сервер-клиенту: "за время вашего отсутствия тыкнул этот, этот и этот. Этот отгадал." Такой способ намного медленнее. А насчет выдержит сервер - это зависит от реализации. При реализации "запросами", просто обычно используют пхп или перл и это влияет на производительность (+ веб-сервер организует передачу данных и жрет ресурсы). Если сделать сокет-сервер на пхп, то он тоже не справится с 1000 пользователей. |
Juice_Green, iflamberg спасибо :)
Цитата:
|
Цитата:
|
С недавних пор это уже стало спорным вопросом.
|
Цитата:
|
Если не использовать J2EE и вообще не усердствовать с фреймворками, то скорость Java во многом догоняет C, но опять же – не надо переусердствовать с подключаемыми фреймворками.
Если сервер будет оперировать с кучей листов, деревьев и тд – То лучший выбор это Erlang или Scala. Вообще функциональные языки, лучше ООП и Процедурных справляются с обработкой данных. Если сервер будет скалироватся, и должен подерживать тысячи юзерей, опять же мой выбор бы пал на Erlang, Scala, Haskell, а не C/C++. C/C++ оптимальный выбор, когда фиг поймет, что вообще требуется. |
Ну 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.