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/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