websockets more reliable, generates content on page