我想構建一個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也能做到的一種方式。需要考慮一下,謝謝! –