Distributed job queue via websockets