basit socket.io implementation