Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何获得Faye客户的客户ID?_Ruby_Faye - Fatal编程技术网

Ruby 如何获得Faye客户的客户ID?

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(

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(如果该信息可用的话)?

我认为我最初的问题是基于对Faye如何在两个方面工作缺乏了解。我不会删除我的问题,我会为任何遇到类似问题的人回答。(如果我的答案有任何错误,请评论或编辑!)

首先,由于Faye在Bayeux协议中的实现方式,在任何时候都无法访问连接的客户端。所有通信都是通过频道广播进行的,这意味着所有收听频道的连接都将接收正在发送的消息

第二,我在问题中粘贴的代码涉及。我真正要找的是一份工作

为了实现给定原始问题的身份验证,我需要传递所需的任何身份验证值(无论是cookie值、身份验证令牌等),作为
消息['ext']
值的一部分(根据扩展页面上的示例)。然后,在服务器端,我需要监听
/meta/handshake
频道上的消息,在值的情况下将
消息['error']
设置为某个值