two modes in demo (worker and websocket), cachesocket introduced