Мне кажется лучше создать отдельные классы для валидации данных(Helper...) и вызывать их в контроллере. По сути такие классы также являются моделями с какой-то стороны. Контроллер не должен сам работать с данными.
Недавно запустили игру. Использовали node.js в качестве comet-сервера(для постоянного соединения игроков). Читал про socket.io, вычитал, что при большой нагрузке ведет себя плохо, не справляется, поэтому сделали на tcp-сокетах.