gpt4 book ai didi

ruby - 我如何获得给定客户 ID 的 Faye 客户?

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:16 24 4
gpt4 key购买 nike

Faye 允许您监视各种事件,例如handshakesubscribe。这些回调 block 仅提供 client_id 值而不是客户端本身。例如:

server = Faye::RackAdapter.new(mount: '/faye', timeout: 45)

server.bind(:handshake) do |client_id|
puts "Received handshake from #{client_id}"
end

如何访问给定 client_id 的客户端?或者我如何在握手中访问更多信息,例如请求 header 中提供的 cookie(如果该信息可用)?

最佳答案

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

首先,由于 Faye 是根据 Bayeux 协议(protocol)实现的,所以在任何时候都无法访问连接的客户端。所有通信都通过 channel 广播进行,这意味着监听 channel 的所有连接都将收到正在发送的消息。

其次,我在问题中粘贴的代码处理 monitoring .我真正要找的是 extension .

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

关于ruby - 我如何获得给定客户 ID 的 Faye 客户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com