85. P2PChat Part1. Текстовый чат. Проектирование архитектуры приложения

P2P – Серия статей посвященных работе с P2P .
Посмотреть все статьи: http://flashpress.ru/blog/category/p2p/
Серия статей на тему проектирования и создания p2p-чата:
  1. P2PChat Part1. Проектируем p2p-чат
  2. P2PChat Part2. Разработка базового функционала p2p-чата

Вводные статьи для начинающих про p2p, а также проектирование ЧатРулетки, Групповой Рисовалки, Файлообменника и Сетевой p2p-игры вы можете найти здесь.

В статье P2P Part2. Установка соединения. Практика мы разбирали то как можно установить связь между флешками, используя канал p2p. Так же мы научились передавать между флешками текстовые сообщения. В этой статье я покажу вам как можно построить архитектуру p2p-чат на языке ActionScript, а в следующей статье напишем приложение, согласно этой архитектуре. Все что нам понадобится, это флеш. Мы не будем использовать в нашем примере сервер, нам не понадобится ни php, ни базы данных. В этом чате прежде чем приступить к общению надо будет ввести свое имя, без авторизации. Если вам необходимо реализовать регистрацию и авторизацию по паролю, то вам конечно же надо использовать php+MySQL. В любом случае, если вы сделаете регистрацию/авторизацию на языке php, вы сможете прикрутить флешовый P2P-чат, это поможет сильно облегчить нагрузку на ваш сервер.

Структура приложения p2p-чат

Структуру нашего будущего Flash приложения можно посмотреть на этой картинке:
p2pchat-part1-1

Структуру каталогов и расположение классов в них можно посмотреть на этой картинке:
p2pchat-part1-2

Описание классов p2p-чата

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

Пакет chat/

В корневом пакете находится ChatApp – главный класс приложения. Содержит в себе два визуальных компонента MessageView и MainView. В зависимости от того, в каком режиме сейчас находится приложение, главный класс отображает нужный визуальный компонент. Также этот класс содержит в себе p2p-контроллер который отправляет сообщения и получает ответы.

Пакет chat/controller/

P2PController – класс служит для отправки сообщений в канал p2p, и получения ответов от других участников чата. В момент получения ответа, класс P2PController отправляет событие ControllerEvent. Это событие слушает класс ChatApp и сообщает классу MessageView информацию о том что надо отобразить новое сообщение. Интерфейс IController нужен для того что бы мы могли в будущем быстро поменять использование P2PController-а на ServerController. Делать это необязательно, но все таки стоит взять в привычку думать о будущих возможных модификациях и расширениях приложения .

Пакет chat/data/

В этом пакете лежат вспомогательные классы для передачи структуры данных между различными классами. MessageData – информация о полученном сообщении, содержит идентификатор автора сообщения(authorId), список идентификаторов кому предназначено сообщение(targetList) и сам текст сообщения(text). Класс UserData сдержит информацию об участнике: идентификатор(peerId) и имя(name).

Пакет chat/view/

В пакете char/view у нас два подкаталога, которые содержат два визуальных компонента MainView и MessagesView.

Пакет chat/view/main/

MainView – класс который отображает приветствие в момент запуска приложения, и предлагает ввести ваше имя и название комнаты чата. При клике на кнопку Войти в чат, этот класс отправляет событие MainEvent, которое слушает класс ChatApp, далее главный класс начинает подключение к сети. Класс MainState содержит две константы определяющие режим отображения компонента MainView.

Пакет chat/view/messages/

MessagesView – визуальный компонент в котором есть форма отправки сообщений в чат, список сообщений и список участников. В этом компоненте в момент нажатия на кнопку Отправить сообщение, из класса MessagesView в класс ChatApp отправляется событие MessagesEvent, далее класс ChatApp отправляет сообщение в p2p-канал с помощью компонента IController. MessageEvent – как уже было сказано, этот класс-событие служит для доставки информации из класса MessageView в класс ChatApp.

Итак, с архитектурной приложения разобрались, в следующей статье мы приступить к написанию кода ActionScript.

UPD: Продолжение урока: P2PChat Part2. Разработка базового функционала p2p-чата.

Серия статей на тему проектирования и создания p2p-чата:
  1. P2PChat Part1. Проектируем p2p-чат
  2. P2PChat Part2. Разработка базового функционала p2p-чата

Вводные статьи для начинающих про p2p, а также проектирование ЧатРулетки, Групповой Рисовалки, Файлообменника и Сетевой p2p-игры вы можете найти здесь.

P2P – Серия статей посвященных работе с P2P .
Посмотреть все статьи: http://flashpress.ru/blog/category/p2p/

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 3930 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress:


  1. Уведомление: Разработка базового функционала p2p-чата | FlashPress.ru - ActionScript 3.0 и Adobe Flash

  2. Уведомление: Установка p2p соединения во Flash и передача данных между флешками | FlashPress.ru - ActionScript 3.0 и Adobe Flash

  3. artnet

    Подскажите, где можно скачать p2p игры, хочу вставить их в свой сайт. Скажите можно ли это сделать.