我想在任何时候将本地托管的r闪亮应用的用户数量限制为一个用户。
理想情况下,当第二个用户尝试同时运行应用程序时(用户通过在地址字段中键入本地IP来访问应用程序),应用程序将显示默认消息并停止任何进一步的进度。如果输入时显示的唯一内容是此拒绝消息,则对任何其他用户命令进行无效可能无关紧要。
应用内容无关紧要,因此我们可以将此应用作为示例:http://shiny.rstudio.com/gallery/tabsets.html
感谢您提供任何帮助或信息。
答案 0 :(得分:0)
我不建议这样做,我认为这非常危险,但有一些方法你可以一起破解这个。这是一个解决方案(正如我所说的,它是hacky,我自己也不会这样做)。基本思想是拥有一个全局变量来跟踪某人是否正在使用该应用程序。如果没有人使用该应用程序,请显示该应用程序并打开该标志,并确保在用户退出时关闭该标志。
shinyBusy <- FALSE
runApp(shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
shinyjs::hidden(
h1(id = "busyMsg", "App is busy")
),
shinyjs::hidden(
div(
id = "app",
p("Hello!")
)
)
),
server = function(input, output, session) {
if (shinyBusy) {
shinyjs::show("busyMsg")
} else {
shinyBusy <<- TRUE
session$onSessionEnded(function() shinyBusy <<- FALSE)
shinyjs::show("app")
}
}
),
launch.browser = TRUE)
注意:为了显示/隐藏应用元素,我使用了我编写的包shinyjs