我目前正试图了解Ruby并实现基本的TCP聊天室。从在线查看我发现这部分代码:(http://www.sitepoint.com/ruby-tcp-chat/)
def initialize(port)
@server = TCPServer.open("localhost", 8888)
@connections = Hash.new
@rooms = Hash.new
@clients = Hash.new
@connections[:server] = @server
@connections[:rooms] = @rooms
@connections[:clients] = @clients
run
end
我正在努力理解@connections[:server] = @server
。
我需要跟踪用户在哪个房间。我想有一对客户/房间但不确定如何去做。有人会有什么建议吗?
答案 0 :(得分:1)
我会使用客户端的哈希值 - >室
答案 1 :(得分:1)
@connections
是哈希。
此行@connections[:server] = @server
为哈希添加了一个键(:server
)值(@server
)对
然后@connections
可能如下所示:
{:server => @server}
@connections[:clients][:handle] = client
正在设置嵌套哈希
所以@connections
成为:
{
:server => @server,
:clients => { :handle => client }
}
注意:这只是为了理解,实际的Hash对象表示看起来会有所不同。