суббота, 5 марта 2011 г.

Первая тысяча и peer to peer

    Привет! Мой блог уже посетило 1000 человек!) И в честь этого события я написал небольшой отчёт о p2p. Сейчас я изучаю помимо p2p (peer to peer) ещё физический движок box2d и связку as3+php+mySQL. Но так как я обещал поделиться своими результатами в изучении peer to peer, то в первую очередь расскажу он нём.


    ● Для чего нужен p2p и почему это круто?

p2p (он же peet to peer) служит для связи между двумя или более флеш приложениями. Для связи не требуется сервер (Наверное, peer to peer использует сервер Adobe). Данные передаются как сообщения, которые ловят другие клиенты. То есть преимущество peer to peer в том, что нету никакого пинга: обычно делают так – предают данные на сервер, сохраняют их в базу данных и через некаторе время посылают запрос на сервер и получают данные, а p2p нигде данные не хранит, а сразу передаёт их в клиент. Так же можно передавать объекты, переменные, видео и т.д. В то время, как в базе данных мы можем сохранить только строку (текст или число).

    ●Как работать с peer to peer?

Что бы работать с peer to peer Вам потребуется flashplayer 10.1 такой имеется в Flash CS5 и в flash develop (я использую Flash CS5). Ещё Вам потребуется код девелопера получить его можно тут. Мы будем использовать сервер rtmfp://p2p.rtmfp.net/.

В p2p есть такое понятие как группа. Когда пользователь подключается к группе, он видит только тех пользователей, которые находятся в этой группе и сообщения отсылаются только пользователям этой группы.

Для прослушивания сообщений существует специальный слушатель – NetStatusEvent. Вот небольшой пример:

private function netStatusHandler(e:NetStatusEvent)
{
switch (e.info.code)
{
case "NetConnection.Connect.Success" :
  trace("соединение успешно установлено");
  break;
case "NetGroup.Connect.Success" :
  trace ("соединение с группой  успешно установлено ");
  break;
case "NetGroup.Posting.Notify" :
  trace ("сообщение получено"); 
  break;
case "NetGroup.Neighbor.Connect" :
  trace ("клиент успешно подключился к группе");
  break;
case "NetGroup.Neighbor.Disconnect" :
  trace ("клиент отключился");
  break;
}
}


Вот так Мы можем отслеживать различные действия.

     ●Практика

Я не буду перепечатывать то, что уже написано, поэтому просто оставлю ссылку на урок по созданию чата с помощью одного лишь флеша:

http://demiart.ru/forum/index.php?showtopic=150351

Demiart требует регистрации, но оно того стоит.

P.S. Код можно сократить, но для понимания сойдёт))

На этом всё)

1 комментарий:

  1. супер:) потом в будущем тоже попробую p2p:) кстати, я тоже занялся серьезно двигом Box2D:) если есть у тя вопросы по нему, можешь ко мне обращатся)

    ОтветитьУдалить