R shiny 服务器:如何计算我的应用程序的用户数量

R shiny server: How to count number of users of my application

我正在使用 R shiny-server 开源版本。我想计算我的应用程序的用户数。这是我的配置文件:

# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;

# Define a server that listens on port 80
server {
  listen 80;

  server_name some_name;

  # Define a location at the base URL
  location / {

    # Host the directory of Shiny Apps stored in this directory
    site_dir /srv/shiny-server/;

    # Log all Shiny output to files in this directory
    log_dir /var/log/shiny-server;

    # When a user visits the base URL rather than a particular application,
    # an index of the applications available in this directory will be shown.
    directory_index on;
  }
}

当我使用我的应用程序并查看日志文件时,没有任何信息告诉我 IPs/users 使用了我的应用程序。有没有办法获取这些信息?

您可以使用 javascript 列出的插件 here。它允许您提取 IP 和由诸如浏览器、显示大小等杂项信息组成的唯一指纹(哈希)。对于 shinyapps.io 中的大多数用户,IP 信息不可用,但您应该能够得到一个粗略的统计.请注意,如果同一个人使用不同的浏览器,您将获得不同的哈希值

关键部分正在添加

inputIp("ipid"),
inputUserid("fingerprint")

到边栏布局中的某个位置。这些是收集您想要的信息所需的隐藏元素。

之后它们可以在观察者中访问为

observe({
    fingerprint <- input$fingerprint
    ipid <- input$ipid
})

当然,您需要将 .js 文件复制到 www/js 文件夹

来源:https://groups.google.com/forum/#!msg/shiny-discuss/EGQhEyoEk3E/ur0mpif11x4J

不过,要获得实际计数,您需要持久文件存储。这在 shinyapps.io 中不可用,但您可以使用 dropbox 等云存储选项来记录您的用户。此处提供了相关教程 http://shiny.rstudio.com/articles/persistent-data-storage.html。每次有人使用我的应用程序时,我个人都会使用 rdrop2 来编辑我的保管箱中的文件。