Server-Sent Events Progress

Server-Sent Events Progress

This conceptual demo shows how server-sent events (SSE) can provide real-time progress updates from the server during chunked uploads. The server pushes processing status as chunks are received and assembled.

Server Events Stream
Waiting for upload to start...
// Client: start SSE listener after upload begins
var uploader = AjaxUploader.create('#uploader', {
 uploadUrl: '/ajaxupload.axd/upload',
 chunkUrl: '/ajaxupload.axd/chunk',
 chunked: true,
 chunkSize: 2 * 1024 * 1024,
 onTaskStart: function(task) {
 // Connect to SSE endpoint for server-side progress
 var sse = new EventSource('/api/upload/progress/' + task.id);
 sse.onmessage = function(e) {
 var data = JSON.parse(e.data);
 logSSE('Server: chunk ' + data.chunk + ' received');
 };
 }
});

// Server: implement SSE endpoint via Generic Handler (.ashx)
// or WebAPI controller