Je construis un système de discussion en utilisant EventMachine et ruby on rails. C'est à des fins d'apprentissage.EventMachine: Comment construire un système de discussion avec l'application Rails
Voici comment le client se connecte au serveur.
c = TCPSocket.open(ip_address, port)
data = {:user_id => 2, :message => 'hello world'}
c.send(data)
response = c.gets
c.close
Cela fonctionne. Cependant, le problème est que je ne peux pas obtenir la liste des personnes qui discutent actuellement dans la salle parce que, comme je l'ai montré ci-dessus, le client ouvre et ferme constamment la connexion.
Un autre plan consiste à exécuter un client EventMachine pour chaque utilisateur connecté. Je prévois de stocker la connexion client en session pour chaque utilisateur. De cette façon, je vais utiliser la même question pour chaque utilisateur. Lorsque l'utilisateur se déconnecte, je ferme la connexion.
Cependant, si l'utilisateur quitte, comment puis-je fermer la connexion client.
Aucune idée.
Juggernaut ne supporte que le flash avec des douilles xml et rails2. Avez-vous des suggestions pour ceux qui veulent utiliser websockets et rails3? – Hackeron
J'ai réussi à utiliser la bibliothèque [em-websocket] (https://github.com/igrigorik/em-websocket) pour EventMachine, mais vous devrez utiliser vos propres méthodes pour répartir les appels aux clients. – tadman