Salut !
Donc pour commencer dis toi bien que si tu fais du websockets avec node.js, cela n'aura aucun rapport avec le PHP ni Symfony donc
accéder à la base de données comme symfony2
n'est tout simplement pas possible. Néanmoins node.js disposent d'une grande communauté et des ORMS pour node.js existent comme par exemple Sequelize : http://docs.sequelizejs.com/en/latest/. Je pense que tu as juste besoin de récupérer l'historique de conversation dans ta base de données, le stocker dans une variable côté script websockets et ajouter les nouveaux messages dans cette variable tout en faisant un push dans ta base de données. Comme cela ton historique est conservé et tu pourras envoyer cette même variable aux utilisateurs qui arrivent sans pour autant faire de requêtes supplémentaires.
Je te propose deux tutoriels pour mener à bien celui-ci, en plus de la doc de l'ORM (si tu souhaites l’utiliser):
http://www.grafikart.fr/tutoriels/nodejs/nodejs-socketio-tchat-366
http://socket.io/get-started/chat/
Côté serveur je vois bien un algorithme comme celui-ci
(lancement du script)
- Récupération de l'historique des messages en base de données
- Sauvegarde de ces messages dans un variables messages
- Lorsqu'un utilisateur arrive, lui envoyer la variable messages
- à chaque nouveau message, l'ajouter dans la variable messages et faire un insert en base de données