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
| Event | Trigger |
|---|---|
connect | New client connects |
data | Client sends data |
close | Client disconnects |
error | An error occurs |
Your Task
Implement an EventServer class:
on(eventType, handler)— registers an event handleremit(eventType, ...args)— triggers all handlers for an event typehandleConnection(clientId)— emits "connect" eventhandleData(clientId, data)— emits "data" eventhandleClose(clientId)— emits "close" eventprocessEventQueue(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.