[#18] initial WebSocket support