migration to websocket