Je souhaite créer une application R Shiny capable de transmettre des informations d'une instance en cours à d'autres instances en cours d'exécution. Je n'ai jusqu'ici rien trouvé qui pourrait m'aider avec ceci, et j'espère faire bien au lieu de recourir à des variables globales et/ou écrire aux dossiers etc. (j'ai employé la variable globale dans mon exemple ci-dessous, que je sais est un mauvaise pratique, et je suppose que l'écriture dans des fichiers ne serait pas une bonne pratique non plus).Interactivité entre plusieurs sessions d'une même application R Shiny
Ainsi, par exemple, supposons que j'ai mon App.R en cours d'exécution sur un serveur et Tim, Jack et John ont ouvert. Comment faire Tim voir ci-dessous, quand Jack et John utilisent également l'application simultanément et appuyez sur le bouton comme indiqué dans l'exemple ci-dessous?
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())
})
}
)
Exemple sortie désirée après plusieurs pressions de bouton des utilisateurs respectifs qui ont tous une instance d'application en cours d'exécution dans leurs navigateurs (tous avaient entrée nom unique de $ sélectionnée, mais évidemment un unique, ID de session serait mieux):
Toute idée serait grandement appréciée, merci!
Je ne pense pas que vous pouvez avoir des sessions interagir avec eachildren autre, mais j'ai construit quelques applications qui écrivent des événements dans une base de données. Certaines actions dans l'application vont rappeler les requêtes et tirer toutes les nouvelles modifications apportées par d'autres utilisateurs simultanés. – Benjamin
Cela semble être une solution possible, même si j'espérais qu'il y aurait un moyen d'interagir directement.Je suppose que je pourrais avoir à construire une solution basée sur SQL aussi bien pour transmettre l'information, c'est certainement une façon de le faire même si elle dépasse R Shiny. Besoin de réfléchir, merci! –