блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
|
Хм. Помню, как-то эксперментировал с п2п. Двойственные впечатления остались: с одной стороны очень классно, что не нужно держать сервер, с другой стороны — тот же пинг.
Где-то здесь, на форуме, уже описывал свои соображения, не получается найти только. В общем, идея была следующая: фактически существует одна группа, но внутри нее есть подгруппы, изолированые друг от друга. Каждый клиент знает, какое максимальное кол-во клиентов может быть в подгруппе (можно считать игровой комнатой) и, когда добавляется новый клиент — он запрашивает данные о подгруппе и, соответственно, узнает, в какую подгруппу ему определиться. Если же нужны "администраторы", то есть клиенты с расширенными правами или те, которые централизовано что-либо делают, то они выбираются автоматически среди клиентов. Визуально пользователь будет даже и не знать, что его флэшка на экране отвечает за состояние игры, например. Механизм выбора "админа" прост: прогоняем всех клиентов на Math.random() и ищем минимальное (или максимальное) полученное значение. Кто победил — тот и админ. Если "админ" дисконнектится, соответственно, запускаем механизм заново.
Не знаю, насколько вам помогут мои рассуждения, но мне кажется, что имея возможность только транслировать сообщения между клиентами вполне возможно создать организованную иерархическую систему клиентов.
|