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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Jul 2004
Сообщений: 113
По умолчанию Как узнать о втором экземпляре приложения на данной машине?

Всем доброго времени суток. Делаю сетевую игру и необходимо запретить на одной машине запускать два клиента. Точнее не то чтобы запускать, а играть этим клиентам между собой

Пробовал использовать localConnection и SharedObject. Все замечательно, но в гадском хромовском PPAPI флэшплеере клиент запускается в "песочнице" и с другими браузерами просто не контачит. Так как в новой версии флэшплеера все хромиум браузеры принудительно переведены на PPAPI, то это огромная проблема. Мозилла с ИЕ друг друг другу могут данные передавать через вышеназваные методы, но вот их общение с любыми другими браузерами этими способами невозможно.

Если бы как-то можно было получить какой-то уникальный идентификатор который был бы связан с конкретной машиной, то я мог бы передавать данные на сервер и запрещать игру уже оттуда, но я не нашел способа как получить этот уникальный ID. Возможно как-то яваскрипт задействовать для этого, но им я не владею.

Если у кого-то есть идеи как можно реализовать запрет на совместную игру двух клиентов, запущенных на одной машине, то подскажите пожалуйста

Старый 09.12.2014, 21:56
DEVORON вне форума Посмотреть профиль Отправить личное сообщение для DEVORON Найти все сообщения от DEVORON
  № 2  
Ответить с цитированием
DEVORON

Регистрация: Jul 2014
Сообщений: 42
А что если клиент будет рандомно генерировать какой-то ключ в момент запуска, который будет записываться вместе с текущим временем в SharedObject каждые 1-2 минуты? Если захочет новый экземпляр запустить, то он посмотрит ключ и время. Если времени с последнего обновления прошло больше 2х минут(допустим), то он запустится и запишет свой ключ и время. Если существует активный ключ, но не его, то пошёл нафиг. Если существует активный ключ и он его - обновляем время.

Старый 09.12.2014, 22:05
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 3  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
как вариант через netGroup связывать 2 флэшки тогда и серв не нужен. Кстати там-же и peerId выдадут. он как- раз уникален, если все-же хочется через сервак
типа
Код AS3:
private const SERVER:String = "rtmfp://stratus.adobe.com/";
private const group_name:String="group1";
private var nc:NetConnection;
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, hNS,false,0,true);
	// To connect to Stratus, pass the server name and your developer key.
	nc.connect(SERVER + DEVKEY);
	private function hNS(e:NetStatusEvent):void{
			switch(e.info.code){
				case "NetConnection.Connect.Success":
				         trace(e.info.code);
					connect();
                                           break;
				case "NetGroup.Neighbor.Connect": // e.info.neighbor
                                       //если зашел сюда,значит флэшка уже запущена
                                        break;
                                             default:
                                            break;
                                             }
}
private function connect():void{
			// Create a GroupSpecifier object to pass to the NetGroup constructor.
			// The GroupSpecifier determines the properties of the group
			var group_spec:GroupSpecifier;
			group_spec = new GroupSpecifier(group_name);
			group_spec.serverChannelEnabled = true;
			ng = new NetGroup(nc, group_spec.groupspecWithAuthorizations());
			ng.addEventListener(NetStatusEvent.NET_STATUS, hNS,false,0,true);
		}
devkey выдают на сайте адоба


Последний раз редактировалось undefined; 10.12.2014 в 14:25.
Старый 09.12.2014, 22:59
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Лучше сразу дайте возможность играть с нескольких аккаунтов или сделайте невыгодной возможность играть с двух аккаунтов одновременно. Путь запрета ни к чему не приведет. Уже проверено.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 09.12.2014, 23:05
illusion21 вне форума Посмотреть профиль Отправить личное сообщение для illusion21 Посетить домашнюю страницу illusion21 Найти все сообщения от illusion21
  № 5  
Ответить с цитированием
illusion21

Регистрация: Jul 2004
Сообщений: 113
Цитата:
Сообщение от DEVORON Посмотреть сообщение
А что если клиент будет рандомно генерировать какой-то ключ в момент запуска, который будет записываться вместе с текущим временем в SharedObject каждые 1-2 минуты? Если захочет новый экземпляр запустить, то он посмотрит ключ и время. Если времени с последнего обновления прошло больше 2х минут(допустим), то он запустится и запишет свой ключ и время. Если существует активный ключ, но не его, то пошёл нафиг. Если существует активный ключ и он его - обновляем время.
Пытался такое. Во всех браузерах работающих на PPAPI (а сейчас это не только хром но и всех основанные на хромиуме) sharedObject свой, которые не пересекается с теми кто работает на NPAPI (мозилла, ИЕ, сафари)...

Тоесть это вариант который легко обходится запуском разных браузеров.

Старый 10.12.2014, 13:35
DEVORON вне форума Посмотреть профиль Отправить личное сообщение для DEVORON Найти все сообщения от DEVORON
  № 6  
Ответить с цитированием
DEVORON

Регистрация: Jul 2014
Сообщений: 42
Цитата:
Сообщение от illusion21 Посмотреть сообщение
Пытался такое. Во всех браузерах работающих на PPAPI (а сейчас это не только хром но и всех основанные на хромиуме) sharedObject свой, которые не пересекается с теми кто работает на NPAPI (мозилла, ИЕ, сафари)...

Тоесть это вариант который легко обходится запуском разных браузеров.
Не знал. Спасибо. Приму к сведению)

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

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

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


 


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


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