Node.js + Varnish + WebSockets

Chat Through The Cache

The HTML shell and benchmark are Varnish-friendly, while live chat uses a WebSocket connection that bypasses cache. Visitors can now also upload images, and upload activity is logged into SQLite alongside chat events.

--:--:--

Loading date...

Detecting timezone...

How this page is split

Varnish accelerates the page shell and benchmarkable backend report.

WebSocket chat stays live because upgrade traffic bypasses cache.

SQLite keeps a durable event log for chat and uploads.

Cache Benchmark

Run a fresh comparison. Each benchmark uses a unique cache key so you get one miss followed by one hit.

Direct Node

--

Waiting for benchmark

Varnish Warm

--

Waiting for benchmark

Varnish Hit

--

Waiting for benchmark

Improvement

--

Waiting for benchmark

Direct Backend

Compute time: --

Generated at: --

Render count: --

First Varnish Fetch

X-Cache: --

Age: --

Generated at: --

Repeated Varnish Fetch

X-Cache: --

Age: --

Generated at: --

Ready.

If the repeated fetch keeps the same generated timestamp and shows X-Cache: h, Varnish served the object without recomputing it on Node.

Live Text Chat

Every visitor gets a random handle the moment they connect.

You are connecting...
Connecting to chat...
Upload a square-normalized JPEG, PNG, GIF, or WebP image.

Recent Images

All uploads are resized to the same square dimensions before they are stored.

SQLite Event Log

Latest joins, messages, uploads, and disconnects loaded from the database.