p2p и с чем его едят

Уроки по PHP, Javascript и т.п.

p2p и с чем его едят

Сообщение совесть » 29 сен 2010, 15:53

итак, начнем.

для начала получим ключ разработчика, чтобы использовать эту технологию. ее можно получить бесплатно по адресу
http://labs.adobe.com/technologies/stratus/

создадим AS файл с названием Stratus.

итак, мы получили ключ. теперь давайте объявим сервер и ключ в нашей флешке через константы.

  1. private const SERVER:String = 'rtmfp://stratus.rtmfp.net/';
  2. private const DEVKEY:String = 'ВАШ КЛЮЧ РАЗРАБОТЧИКА';


далее объявим переменные

  1.                private var netConnection:NetConnection;
  2.         private var netGroup:NetGroup;
  3.         private var netStream:NetStream;
  4.         private var groupspec:GroupSpecifier;

итак, разберем переменные.

netConnection- переменная, отвечающая за подключение к p2p
NetStream- переменная, помогающая подключиться к юзеру/группе в п2п сети.
netGroup- переменная, отвечающая за подключение к группе.
groupspec- переменная, отвечающая за инфу для подключения к группе.

далее подключаемся к п2п сети.

  1.                        netConnection = new NetConnection();
  2.             netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
  3.             netConnection.connect(SERVER + DEVKEY)


в функции netStatusHandler будет получаться вся инфа о п2п сети, то есть, удалось ли подключиться, какое сообщение получаем и т.п.

далее создаем настройки для подключения к группе, и подключаемся к ней.

  1. function setupGroup():void {
  2.            
  3.             groupspec = new GroupSpecifier("НАЗВАНИЕ КОМНАТЫ К КОТОРОЙ ХОТИМ ПОДКЛЮЧИТЬСЯ");
  4.             groupspec.serverChannelEnabled = true;
  5.             groupspec.multicastEnabled = true;
  6.             groupspec.postingEnabled = true;
  7.             groupspec.routingEnabled = true;
  8.             groupspec.peerToPeerDisabled = false;
  9.            
  10.        
  11.             netStream = new NetStream(netConnection, groupspec.groupspecWithAuthorizations());
  12.             netStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
  13.         }


думаю в дополнительном объяснении это не нуждается, там всё понятно даже судя по названиям(у кого туго с английским, добро пожаловать в гугл).

а теперь самое интересное. обработка ответов, а именно функция netStatusHeandler.

  1. function netStatusHandler(e:NetStatusEvent):void {
  2.            
  3.            
  4.             switch (e.info.code) {
  5.                 case 'NetConnection.Connect.Success':
  6.                     setupGroup();
  7.                     break;
  8.                 case 'NetStream.Connect.Success':
  9.                     // Create new NetGroup
  10.                     netGroup = new NetGroup(netConnection, groupspec.groupspecWithAuthorizations());
  11.                    
  12.                     netGroup.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
  13.                     break;
  14.                 case 'NetGroup.Connect.Success':
  15.                    
  16.                     break;
  17.                              case 'NetGroup.SendTo.Notify' :
  18.                               trace(e.info.message)//объект, который мы получили от члена группы.
  19.                               break;
  20.                 default:
  21.                    
  22.             }


e.info.code включает в себя результат ваших действий.
NetConnection.Connect.Success- если удалось подключиться к п2п сети.
NetStream.Connect.Success- если удалось подключиться к группе, то создаем переменную, отвечающую за всю инфу группы.
NetGroup.Connect.Success- если удалось подключиться к группе.

вот мы подключились. как отправлять данные? это делается просто. создаем функцию

  1. public function sendData():void {
  2.                         var obj:Object = {text:"olol"};
  3.             netGroup.sendToAllNeighbors($obj);
  4.         }


отправка данных идет объектом. чтобы получить ответ от участника группы,
вот в принципе и всё. уже можно написать чат на p2p технологии.
ERROR 402, NO BEER

За это сообщение автора совесть поблагодарили - 5:
Александр, bodnar, hlamovnic, Noise Gate, psix55
Аватара пользователя
совесть
Разработчик
Разработчик
 
Автор темы
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: p2p и с чем его едят

Сообщение bodnar » 29 сен 2010, 16:15

Неплохо было бы добавить краткую справку по peer-to-peer впринципе, чтоб без лишних вопросов

И я что то слегка не уловил, у нас подключение все равно идет через сервер адоба? :roll:
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: p2p и с чем его едят

Сообщение совесть » 29 сен 2010, 16:54

ну нужно же как-то объявлять юзеров.

остальная справка в хелпе. это основное. остальное в основном идет на получение данных.

могу урок для чата сделать
ERROR 402, NO BEER
Аватара пользователя
совесть
Разработчик
Разработчик
 
Автор темы
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: p2p и с чем его едят

Сообщение bodnar » 29 сен 2010, 17:28

Лучше исходник самый простой выложи :lol:
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: p2p и с чем его едят

Сообщение совесть » 29 сен 2010, 18:29

[url]k3e.ru/olo.rar[/url]

держи. только там говнокод. но, думаю, разберешься.
ERROR 402, NO BEER
Аватара пользователя
совесть
Разработчик
Разработчик
 
Автор темы
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: p2p и с чем его едят

Сообщение bodnar » 29 сен 2010, 19:10

Сразу вопрос, есть там какой-нибудь онлайн сервис, чтобы увидеть что там происходит у меня? Кто что прислал, кто присоединился, кто в какой комнате сидит? Так сказать админка.
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: p2p и с чем его едят

Сообщение совесть » 29 сен 2010, 19:16

нету админки. комнаты создаются с клиента. кто сидит, смотри в NetGroup.

п2п сеть- эт клиент и сервер в 1. каждый человек является сервером и клиентом одновременно
ERROR 402, NO BEER
Аватара пользователя
совесть
Разработчик
Разработчик
 
Автор темы
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: p2p и с чем его едят

Сообщение bodnar » 09 окт 2010, 04:42

Пару вопросов.
Насколько понял отправить конкретному пользователю (или нескольким пользователям из группы) нельзя?
Какую информацию можно получить о конкретном пользователе? Только peerID? пользователь не может создать где нибудь дополнительных полей (ну не знаю, в netConnection например) что бы эти поля могли получать другие пользователи по мере нужды?
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: p2p и с чем его едят

Сообщение revizor » 09 окт 2010, 14:21

а вообще чего код ???
ТС хоть бы подписал для непонтливых ) комнаты ...статусы.... чат чтоли ?
Аватара пользователя
revizor
FL Team
FL Team
 
Сообщения: 1034
Зарегистрирован: 18 ноя 2009, 20:22
Благодарил (а): 6 раз.
Поблагодарили: 49 раз.

Re: p2p и с чем его едят

Сообщение совесть » 10 окт 2010, 21:20

не уверен насчет дополнительных полей.

отправлять можно отдельному человеку.

$connection.sendToNeighbor
ERROR 402, NO BEER
Аватара пользователя
совесть
Разработчик
Разработчик
 
Автор темы
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

След.

Вернуться в Уроки на другие темы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron