websocket loop