server pushes program state via websockets