для начала получим ключ разработчика, чтобы использовать эту технологию. ее можно получить бесплатно по адресу
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);
далее создаем настройки для подключения к группе, и подключаемся к ней.
Код: Выделить всё
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: }
NetConnection.Connect.Success- если удалось подключиться к п2п сети.
NetStream.Connect.Success- если удалось подключиться к группе, то создаем переменную, отвечающую за всю инфу группы.
NetGroup.Connect.Success- если удалось подключиться к группе.
вот мы подключились. как отправлять данные? это делается просто. создаем функцию
Код: Выделить всё
public function sendData():void { var obj:Object = {text:"olol"}; netGroup.sendToAllNeighbors($obj); }
вот в принципе и всё. уже можно написать чат на p2p технологии.