我想构建一个R Shiny应用程序,它能够将信息从一个运行实例传递到其他可能的运行实例。到目前为止,我还没有找到任何可以帮助我的东西,我希望能够做到这一点,而不是诉诸全局变量和/或写入文件等(我在下面的示例中使用了全局变量,我知道它是一个不好的做法;我怀疑写文件也不是一个好习惯)。单个运行的多个会话之间的交互R Shiny应用程序
因此,举例来说,假设我有一台服务器和添,杰克和约翰有它开上运行我的App.R。如何使Tim看到下面的时候,插孔和约翰也在同时使用该应用程序,并按下按钮如下面的例子所示?
App.R:从谁都有一个应用程序实例在其浏览器中运行的各个用户的多个按钮按下后
library(shiny)
# Somehow interactively visible variable? (I know global variables are bad, I wouldn't want to use such)
txt <<- ""
shinyApp(
ui = fluidPage(
textInput("name", "User name", value="USERNAME"),
actionButton("button", "Button"),
htmlOutput("text")
),
server = function(input, output, session){
a <- eventReactive(input$button, {
txt <<- paste(txt, "Button pressed by", input$name, "at", Sys.time(), "<br>")
txt
})
output$text <- reactive({
HTML(a())
})
}
)
例所需的输出(全部具有独特的输入$名称选择,但显然是独一无二的会话ID会更好):
任何有识之士将不胜感激,谢谢!
我不认为你可以让会话与其他人进行交互,但我已经构建了一些将事件写入数据库的应用程序。应用程序中的某些操作将调回查询并提取其他并发用户所做的任何新更改。 – Benjamin
这似乎是一个可能的解决方案,虽然我希望有一些直接交互的方式。我想我可能不得不建立一些基于SQL的解决方案以传递信息,这绝对是即使超越R Shiny也能做到的一种方式。需要考虑一下,谢谢! –