add websocket streaming support