websocket + publishing