Lesson 11 of 15

Event-Driven Server

Event-Driven Server

Modern servers use an event-driven architecture to handle many connections efficiently without creating a thread per connection. This is the model used by Node.js, nginx, and many high-performance servers.

Event Loop Model

┌─────────────────────────────────┐
│         Event Queue             │
│  [connect] [data] [close] ...  │
└──────────────┬──────────────────┘
               │
               v
┌─────────────────────────────────┐
│         Event Loop              │
│   while (events.length > 0) {  │
│     event = events.shift();    │
│     handler(event);            │
│   }                            │
└─────────────────────────────────┘

Event Types

EventTrigger
connectNew client connects
dataClient sends data
closeClient disconnects
errorAn error occurs

Your Task

Implement an EventServer class:

  • on(eventType, handler) — registers an event handler
  • emit(eventType, ...args) — triggers all handlers for an event type
  • handleConnection(clientId) — emits "connect" event
  • handleData(clientId, data) — emits "data" event
  • handleClose(clientId) — emits "close" event
  • processEventQueue(events) — processes an array of event objects { type, clientId, data? } in order, returning a log of all handler outputs
Node.js loading...
Loading...
Click "Run" to execute your code.