add websocket function