Instead of polling, this should be a WebSockets connection. Mostly because polling works but is gross.