для начала получим ключ разработчика, чтобы использовать эту технологию. ее можно получить бесплатно по адресу
http://labs.adobe.com/technologies/stratus/
создадим AS файл с названием Stratus.
итак, мы получили ключ. теперь давайте объявим сервер и ключ в нашей флешке через константы.
- private const SERVER:String = 'rtmfp://stratus.rtmfp.net/';
- private const DEVKEY:String = 'ВАШ КЛЮЧ РАЗРАБОТЧИКА';
далее объявим переменные
- private var netConnection:NetConnection;
- private var netGroup:NetGroup;
- private var netStream:NetStream;
- private var groupspec:GroupSpecifier;
итак, разберем переменные.
netConnection- переменная, отвечающая за подключение к p2p
NetStream- переменная, помогающая подключиться к юзеру/группе в п2п сети.
netGroup- переменная, отвечающая за подключение к группе.
groupspec- переменная, отвечающая за инфу для подключения к группе.
далее подключаемся к п2п сети.
- netConnection = new NetConnection();
- netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- netConnection.connect(SERVER + DEVKEY);
в функции netStatusHandler будет получаться вся инфа о п2п сети, то есть, удалось ли подключиться, какое сообщение получаем и т.п.
далее создаем настройки для подключения к группе, и подключаемся к ней.
- function setupGroup():void {
- groupspec = new GroupSpecifier("НАЗВАНИЕ КОМНАТЫ К КОТОРОЙ ХОТИМ ПОДКЛЮЧИТЬСЯ");
- groupspec.serverChannelEnabled = true;
- groupspec.multicastEnabled = true;
- groupspec.postingEnabled = true;
- groupspec.routingEnabled = true;
- groupspec.peerToPeerDisabled = false;
- netStream = new NetStream(netConnection, groupspec.groupspecWithAuthorizations());
- netStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- }
думаю в дополнительном объяснении это не нуждается, там всё понятно даже судя по названиям(у кого туго с английским, добро пожаловать в гугл).
а теперь самое интересное. обработка ответов, а именно функция netStatusHeandler.
- function netStatusHandler(e:NetStatusEvent):void {
- switch (e.info.code) {
- case 'NetConnection.Connect.Success':
- setupGroup();
- break;
- case 'NetStream.Connect.Success':
- // Create new NetGroup
- netGroup = new NetGroup(netConnection, groupspec.groupspecWithAuthorizations());
- netGroup.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- break;
- case 'NetGroup.Connect.Success':
- break;
- case 'NetGroup.SendTo.Notify' :
- trace(e.info.message)//объект, который мы получили от члена группы.
- break;
- default:
- }
e.info.code включает в себя результат ваших действий.
NetConnection.Connect.Success- если удалось подключиться к п2п сети.
NetStream.Connect.Success- если удалось подключиться к группе, то создаем переменную, отвечающую за всю инфу группы.
NetGroup.Connect.Success- если удалось подключиться к группе.
вот мы подключились. как отправлять данные? это делается просто. создаем функцию
- public function sendData():void {
- var obj:Object = {text:"olol"};
- netGroup.sendToAllNeighbors($obj);
- }
отправка данных идет объектом. чтобы получить ответ от участника группы,
вот в принципе и всё. уже можно написать чат на p2p технологии.



