Ruby 如何获得Faye客户的客户ID?
Faye允许您监视各种事件,例如Ruby 如何获得Faye客户的客户ID?,ruby,faye,Ruby,Faye,Faye允许您监视各种事件,例如握手或订阅。这些回调块只提供客户机id值,而不是客户机本身。例如: server = Faye::RackAdapter.new(mount: '/faye', timeout: 45) server.bind(:handshake) do |client_id| puts "Received handshake from #{client_id}" end 给定客户端id,如何访问客户端?或者我如何在握手中获取更多信息,比如请求头中提供的cookies(
握手
或订阅
。这些回调块只提供客户机id
值,而不是客户机本身。例如:
server = Faye::RackAdapter.new(mount: '/faye', timeout: 45)
server.bind(:handshake) do |client_id|
puts "Received handshake from #{client_id}"
end
给定
客户端id
,如何访问客户端?或者我如何在握手中获取更多信息,比如请求头中提供的cookies(如果该信息可用的话)?我认为我最初的问题是基于对Faye如何在两个方面工作缺乏了解。我不会删除我的问题,我会为任何遇到类似问题的人回答。(如果我的答案有任何错误,请评论或编辑!)
首先,由于Faye在Bayeux协议中的实现方式,在任何时候都无法访问连接的客户端。所有通信都是通过频道广播进行的,这意味着所有收听频道的连接都将接收正在发送的消息
第二,我在问题中粘贴的代码涉及。我真正要找的是一份工作
为了实现给定原始问题的身份验证,我需要传递所需的任何身份验证值(无论是cookie值、身份验证令牌等),作为消息['ext']
值的一部分(根据扩展页面上的示例)。然后,在服务器端,我需要监听/meta/handshake
频道上的消息,在值的情况下将消息['error']
设置为某个值