Depending on where you are targeting geographically those technologies vary a lot; I personally have seen a lot of demand for iOS/Android, but even more demand for Ruby on Rails. I think that quite a few Ruby on Rails developers left the community and flocked to Node.js as the next shiny thing and that has just made it easier to find Rails contract work.
Not only is it easier to find work in a less mainstream technology, but you are able to negotiate better rates since it is more difficult for businesses to locate help. After a certain point you can't scale by taking on additional hours; so your hourly rate makes a big difference.
And hourly vs fixed rate contracting should be considered. I will negotiate my hourly rate based on term of contract, but under no circumstances will I take fixed rate contracts any longer. Quite a few of my friends in the contracting scene are the same way. I've seen too many times where this just leads to continual "feature creep" and a strong difference in opinions of if scope of work has been expanded beyond the agreed contract (in all cases it was). I bid a fixed rate contract with a couple of associates against my better judgement. Based on the initial scope of work it should have taken about 3 months. Instead it took over a year and the lead developer on the project walked away making a rate of right around $10/hour.
And this point can not be overstated.
Network! Network! Network!
If you are an introvert you are going to have to get over it. It doesn't matter if you have the raw programming skills of Linus Torvalds or John Carmack; if you can't get out there and make connections you aren't going to make any money.
I am very introverted by nature, but I force myself to regularly attend meetups and conferences; and make a point to connect with new people at those conferences. You need to grow your real social graph; not your Facebook/LinkedIn/etc... Nothing makes the same lasting impression as a firm handshake and 5 minutes of conversation face to face.