代码之家  ›  专栏  ›  技术社区  ›  Tolga

Rails操作电缆:如何获取用户代理和客户端IP地址?

  •  0
  • Tolga  · 技术社区  · 6 年前

    我正在升级一个Rails应用程序,通过Action Cable使用websocket。出于日志记录的目的,我需要获取客户端的IP地址和发送套接字消息的用户代理。

    speak 方法 MyChannel 班级( app/channels/my_channel.rb ),我无法访问会话或请求。

    你知道我该怎么办吗 user_agent 和客户端IP地址 说话

    1 回复  |  直到 6 年前
        1
  •  0
  •   xnust    6 年前

    您可以从通道所属的连接对象中的请求获取此信息。

        2
  •  0
  •   Alexey Grinko    5 年前

    ActionCable::Connection::Base env 属性读取器。

    用户代理

    user_agent = connection.env["HTTP_USER_AGENT"]
    

    ApplicationCable::Channel 实例,其中连接实例可通过 connection 属性

    环境 属性已公开( https://api.rubyonrails.org/v5.1.6/classes/ActionCable/Connection/Base.html#method-i-request ). 您可以通过运行 connection.env.keys 连接 实例是可用的,显然)。

        3
  •  0
  •   Bart    4 年前

    remote_ip 您可以在您的频道中执行以下操作:

    ActionDispatch::Request.new(connection.env).remote_ip