Как определить время ожидания для приложения Shiny - PullRequest
0 голосов
/ 10 октября 2018

У меня есть приложение Shiny, размещенное в AWS.Теперь я хочу определить опцию Time-out для моего приложения, скажем, 5 мин.Значит, если пользователь не активен над блестящим приложением более 5 минут, мое приложение должно быть отключено от сервера.

Есть идеи, какой параметр искать на странице конфигурации сервера Shiny?

1 Ответ

0 голосов
/ 10 октября 2018

Поскольку мой ответ не был принят здесь я опубликую его здесь.не то чтобы я использовал маленький бит JS для обнаружения бездействия.Вам не нужна библиотека leaflet, так как это всего лишь демонстрация.Приложение закроет окно через 5 секунд

library(shiny)
library(leaflet)

inactivity <- "function idleTimer() {
  var t = setTimeout(logout, 5000);
  window.onmousemove = resetTimer; // catches mouse movements
  window.onmousedown = resetTimer; // catches mouse movements
  window.onclick = resetTimer;     // catches mouse clicks
  window.onscroll = resetTimer;    // catches scrolling
  window.onkeypress = resetTimer;  //catches keyboard actions

  function logout() {
    window.close();  //close the window
  }

  function resetTimer() {
    clearTimeout(t);
    t = setTimeout(logout, 5000);  // time is in milliseconds (1000 is 1 second)
  }
}
idleTimer();"


ui <- fluidPage(
  tags$script(inactivity),    
  leafletOutput("mymap")

)

server <- shinyServer(function(input,output,session){

  points <- eventReactive(input$recalc, {
    cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
  }, ignoreNULL = FALSE)

  output$mymap <- renderLeaflet({
    leaflet() %>%
      addProviderTiles(providers$Stamen.TonerLite,options = providerTileOptions(noWrap = TRUE)) %>% 
      addMarkers(data = points())
  })

})
runApp(list(ui = ui, server = server))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...