サーバーとクライアントの間に双方向のリアルタイム接続が必要な場合(チャットボットや株式相場表示など)、socket.ioが適しています。
ただし、サーバーからクライアントで時々データをフェッチする(および/またはデータをプッシュする)必要がある場合は、RESTfulアーキテクチャの方が理にかなっています。
ほとんどのユースケースでは、RESTfulアーキテクチャの方がおそらく優れています。クライアントとサーバー間で共有しているデータの種類についてもう少し詳しく説明すると、より正確な答えが得られる可能性があります。