I am having some troubles in understanding how sessions work in the shiny-server. I assume that a session finishes when the user close the browser, however, by using the print(session$isClosed()) in the server function I get a FALSE response at the beginning (so okay) and then when I close the browser nothing happens. Can anyone give me a clue about shiny-server sessions? I would want to store session specific plots to let the users download their plots only.
How sessions work in shiny-server?
20.1k views Asked by David Mas At
1
There are 1 answers
Related Questions in R
- How to make an R Shiny app with big data?
- How do I keep only specific rows based on whether a column has a specific value?
- Likert scale study - ordinal regression model
- Extract a table/matrix from R into Excel with same colors and stle
- How can I solve non-conformable arguments in R netmeta::discomb (Error in B.matrix %*% C.matrix)?
- Can raw means and estimated marginal means be the same ? And when?
- Understanding accumulate function when .dir is set to "backwards"
- Error in if (nrow(peaks) > 0) { : argument is of length zero Calls: CopywriteR ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> Execution ha
- How to increase quality of mathjax output?
- Convert the time intervals to equal hours and fill in the value column
- How to run an R function getpoints() from IPDfromKM package in an R shiny app which in R pops up a plot that utilizes clicks to capture coordinates?
- Replace NA in list of dfs in certain columns and under certain conditions
- R and text on Cyrillic
- The ts() function in R is returning the correct start and frequency but not end value which is 1 and not 179
- TROUBLING with the "DROP_NA" Function
Related Questions in SHINY
- How to make an R Shiny app with big data?
- How to increase quality of mathjax output?
- How to run an R function getpoints() from IPDfromKM package in an R shiny app which in R pops up a plot that utilizes clicks to capture coordinates?
- Pass column name to lpSolve obj from drop down
- How to dynamically update a selectizeInput?
- How to update an editable data table when a column is edited and use it to perform successive calculations in Shiny
- How do I make sure that the labels of a echarts4r radar chart are completely visible on any screen? Works with bs4Dash::box but not with bslib::card
- How to deploy my shiny application (with multiple files) via Docker
- How to add tabset to table position in this application using Shiny R?
- Run R shiny plotting function with JS in an R Shiny environment
- How to have the pagination display correctly?
- Using Javascript package in R
- How to get new text input after entering a password in a tab?
- Increase y-axis height to fit in geom_text labels according to multiple criteria
- How do you make the pop up appear and print a sentence in the main/side panel?
Related Questions in SHINY-SERVER
- Shinyapp published cant make connect to googlesheets
- Setting app_idle_timeout for shiny changes nothing
- Error in calling a variable written in a reactive expression
- R Shiny - if statement on reactive({}) value failing
- In-line MathJax equations not rendering on Shiny app hosted at shinyapps.io
- Get an input from a button in table from modules in R
- How can i make a dynamic plot with shiny.gosling?
- R Shiny app runs fine in R Studio but looks different when deployed to server
- Facing error while copy files from local to shiny server in ubuntu
- Gmailr not validating stored token in Shiny server
- try to find the mistake in my code error in parse ,missing coma shiny?
- SSL configuration for shiny server open source
- How to give R Shiny Server permissions to render Rmarkdown on Ubuntu?
- Python is not able to find libraries while accessing from shiny script
- How to setup nginx and shiny-server to support separate webpage(s) and multiple shiny apps?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Well, to start with a shiny session object is a specific ('R6') data structure in shiny, made of public and private elements. It's purpose is to record one instance of the relationship between one user and shiny (more on this later).
A good way to explore the session object is to play with the shiny example in shiny gallery client-data-and-query-string. It allows to
seewhat is contained for example insession$clientdataor any other element of the object.A couple of additional & misleadingly trivial points:
As an example, to show how the issue is actually quite complex, if I refresh the browser, I end the present session and create a new one.
Coming to
session$isClosed(), this is not the right function to connect to specific action when a session is ended. This is actually the role of a shiny call back functionA minimal example could be the following:
If you try, refreshing (or breaking up with browser() ) will print "Stop" and will stop the app.
26 September 2017 Edit:
In general, I think it is better to be cautious if the continuity of a session is of importance (and in any case it is appropriate to test
sessioncode directly onShiny ServerorShiny Server Pro). Possibly the most important use cases come withShiny Server Pro, where any disconnectionmayaffect login status etc.).I'm also aware that the
shinyteam has made changes on these areas in recent versions. E.g., it seems that whileonSessionEndedstill works, possibly it is not anymore the best function for this usecase .See the following code as an example (from
shinyreference guide), usingonStop, that can work when a session ends, as well as when the app stops.