fixed: add websocket