Skip to content

HowProgrammingWorks/EventDrivenProgramming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Событийно-ориентированное программирование

  • Каталог /EventEmitter
    • simpleEventEmitter.js - простейшая реализация EventEmitter
    • enhancedEventEmitter.js - расширенная версию EventEmitter для Node.js
  • Каталог 'LiveTable' - пример таблицы, которая синхронизируется между несколькими браузерами через отправку событий по Websocket.

Перед запуском LiveTable нужно запустить npm install из этого каталога, npm устаносит зависимости, указанные в package.json, после этого можно запускать sudo node server. Внимание, если другая программа заняла 80 порт, то нужно ее остановить, это может быть Apache, Skype, nginx, IIS и др. Если не удается освободить 80 порт, то заменить его на любой другой порт, поправив номер порта в коде сервера и допишите его в URL вебсокета в коде клиента.

Задания

  1. Реализовать расширенный EventEmitter, как в 'enhancedEventEmitter.js' на базе простого из simpleEventEmitter.js, а не на базе встроенной в Node.js библиотеки events. Адаптировать расширенный EventEmitter для одинаковой работы в Node.js и в браузере.
  2. Модифицировать 'LiveTable' так, чтоб в ячейках можно было использовать формулы, как в электронных таблицах, например: = A1 + B2, но сделать это без использования циклов, а на событийной модели, т.е. при помощи подписки на изменения, с применением EventEmitter.
  3. Транслировать события не только внутри приложения, но и по сети через Websocket и отправлять их в EventEmitter.

Дополнительные задания

  1. Сделать сетевую реализацию EventEmitter, делающую взаимодействие по сети прозрачным между клиентом и сервером.

  2. Модифицировать сетевую реализацию EventEmitter, чтоб взаимодействие по сети было прозрачным между несколькими клиентами, через сервером. Реализовать ретрансляцию событий.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy