Команда ng-book 2 разработала чат-приложение с использованием Angular 2, RxJS, Angular CLI, Webpack, TypeScript, Services, Injectables, Karma, Forms и tslint. Цель — показать, как использовать шаблон архитектуры данных Observables, как писать инъекционные сервисы в Angular 2 и асинхронные компоненты, работающие с RxJS.
Приложение чата
Демо-версия доступна по ссылке.
# clone the repo git clone https://github.com/ng-book/angular2-rxjs-chat.git # change into the repo directory cd angular2-rxjs-chat # install npm install # run npm start
Перейдите по адресу http://localhost:4200 в браузере.
Приложение состоит из трех модулей:
Message
— содержит отдельные сообщения чата;Thread
— содержит метаданные для группы Message
;User
— содержит данные об отдельном пользователе.Структура приложения
Также для каждой модели есть три услуги:
MessagesService
— управляет потоками сообщений;hreadsService
— управляет потоками Threads
;UserService
— управляет потоком текущего пользователя User
.Три компонента верхнего уровня:
ChatNavBar
— для верхней панели навигации подсчета непрочитанных сообщений;ChatThreads
— для интерактивного списка тем;ChatWindow
— окно, где проводится текущий разговор.Компоненты верхнего уровня
Каждый сервис публикует данные в виде потоков RxJS. Клиенты службы подписываются на эти потоки, чтобы получать уведомления об изменениях.
MessagesService
— это основа приложения. Все новые сообщения добавляются в потом newMessages
. Все новые потоки являются производными от прослушивания newMessages
. Потоки, предоставляемые ThreadsService
, создаются путем прослушивания потока сообщений.
Примечание: есть несколько других полезных потоков, которые предоставляют сервисы:
Например, MessagesService
предоставляет поток сообщений, который является потоком списка всех текущих сообщений. messages
выдает массив для каждой записи. Аналогично ThreadsService
предоставляет список хронологически упорядоченных потоков в orderThreads
и так далее.
В приложении реализовано несколько чат-ботов. Например:
Бот для приложения
Шаг 1: Установите Node.js (авторы рекомендуют версию 4.1 и выше).
Проверить версию можно следующей командой:
$ node -v vv4.1...
Шаг 2: Установите зависимости.
npm install
npm run go
Затем перейдите по адресу http://localhost:4200 в браузере.
Запуск тестов можно проводить с помощью следующей команды:
npm run test
Вот и все! После стабилизации разработки Angular 2 авторы планируют внести в репозиторий два больших изменения:
ON_PUSH
. Вместо наблюдаемых объектов для улучшения производительности компонентов.Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…