我有一个Websocket服务器(使用Rubame),它以块形式处理服务器连接:
server.run do |client|
# ...
end
客户端向服务器发送消息(即ping;end
),然后服务器发回消息(即pong;end
)。
我没有在块中创建反应消息代码,而是创建了一个巨大的,丑陋的混乱,我希望将它放在一个函数中:
def react(msg)
# ...
end
server.run do |client|
client.onmessage do |mess|
react(mess)
end
end
要将消息发送回客户端,我需要访问传递给client
块的server.run
变量,并且该方法似乎无法访问该变量。
有没有办法从块内调用的方法中访问块的变量?
答案 0 :(得分:4)
只需将client
传递给您的方法:
def react(client, msg)
# ...
end
server.run do |client|
client.onmessage do |mess|
react(client, mess)
end
end