Socket.Io - хороший вариант для общения в реальном времени. На самом деле это очень популярный выбор. Socket.IO не создан для создания приложения чата. Большую часть времени, в качестве примера приложения в реальном времени, все приводят концепцию чата. Основное назначение Socket.IO - передача данных в режиме реального времени. Это могут быть любые данные.
Если вы новичок в этом мире, я бы посоветовал вам взглянуть на FeathersJS . Вы можете переключиться из режима REST в режим реального времени или наоборот в любое время с помощью нескольких строк изменения кода. Многие вещи скрыты от вас, чтобы сделать вашу разработку проще. Их документация также хороша.
И самое интересное в том, что FeathersJS основан на ExpressJS, и вы можете выбрать драйвер базы данных по своему усмотрению ( mongoose доступен в качестве опции).