1. A method comprising: receiving, at a server, a key frame from a publishing client sharing its screen, the key frame defining the screen of the publishing client in its entirety at the beginning of a screen sharing session with one or more viewing clients; transmitting, with the server, the key frame to the one or more viewing clients; iteratively processing, with the server, each of a plurality of delta frames, wherein the delta frames specify changes to the screen of the publishing client since the key frame or since a previous delta frame and the iterative processing comprises: (i) maintaining a queue for each of the one or more viewing clients, (ii) receiving each delta frame from the publishing client, (iii) storing either a received delta frame or an aggregated delta frame in each queue, (iv) maintaining an aggregated current key frame that corresponds to the key frame updated with each delta frame received, and (v) sending the delta frames from the queues to each of the one or more viewing clients; accepting, with the server, a late joiner viewing client for the screen sharing session; sending, with the server, the aggregated current key frame to the late joiner viewing client; and sending, with the server, subsequently received delta frames to the one or more viewing clients and to the late joiner viewing client.