ある実行中のインスタンスから実行中の他のインスタンスに情報を渡すことができる R Shiny アプリを構築したいと考えています。これまでのところ、これに役立つものは何も見つかりませんでした。グローバル変数に頼ったり、ファイルに書き込んだりするのではなく、正しく実行したいと考えています(以下の例ではグローバル変数を使用しましたが、これは悪い習慣; ファイルへの書き込みも良い習慣ではないと思います)。
たとえば、サーバー上で App.R を実行していて、Tim、Jack、およびJohnがそれを開いているとします。ジャックとジョンも同時にアプリを使用しているときに、次の例に示すようにボタンを押して、ティムに以下を表示させるにはどうすればよいですか?
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())
})
}
)
ブラウザでアプリ インスタンスを実行しているそれぞれのユーザーから複数のボタンを押した後の望ましい出力の例 (すべて一意の input$name が選択されていますが、明らかに一意のセッション ID の方が優れています)。
どんな洞察も大歓迎です、ありがとう!