чем Angular отличается от socket.io?
Да всем. AngularJS - фреймворк, базовый каркас вашего приложения, директивы, DI и т.д. socket.io - библиотека для реализации взаимодействия с websockets.
То есть правильно было бы AngularJS + socker.io + express.js. Angular для фронтэнда чуть что. express.js для бэкэнда (rest), socket-io - websocket сервер. Можно использовать сокеты как транспорт для данных если у вас часто взаимодействие с сервером происходит, можно только для push сообщений...