我正在使用 EventMachine 和 ruby on rails 构建一个聊天系统。是为了学习。
这就是客户端连接到服务器的方式。
c = TCPSocket.open(ip_address, port)
data = {:user_id => 2, :message => 'hello world'}
c.send(data)
response = c.gets
c.close
有用。但是问题是我无法获得当前在房间里聊天的人的列表,因为如上所示,客户端不断打开和关闭连接。
另一种计划是为每个连接的用户运行一个 EventMachine 客户端。我计划在 session 中为每个用户存储客户端连接。通过这种方式,我将为每个用户使用相同的问题。当用户注销时,我将关闭连接。
但是,如果用户退出,那么我如何自行关闭客户端连接。
有什么想法吗。
最佳答案
您可以在 Juggernaut 库上构建,而不是自己编写。这是一个 EventMachine 框架,它有一个例子来做这种事情。
关于ruby - 事件机器 : How to build a chat system with Rails application,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1891297/