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 best solutions below
Related Questions in R
- in R, recovering strings that have been converted to factors with factor()
- How to reinstall pandoc after removing .cabal?
- How do I code a Mixed effects model for abalone growth in Aquaculture nutrition with nested individuals
- How to save t.test result in R to a txt file?
- how to call function from library in formula with R type provider
- geom_bar define border color with different fill colors
- Different outcome using model.matrix for a function in R
- Creating a combination data.table in R
- Force specific interactions in Package 'earth' in R
- Output from recursive function R
- Extract series of observations from dataframe for complete sets of data
- Retrieve path of supplementary data file of developed package
- r package development - own function not visible for opencpu
- Label a dataset according to bins of a histogram
- multiply each columns of a matrix by a vector
Related Questions in SHINY
- Shiny: Reactive boolean variable across functions in server.R
- Leaflet map legend in R Shiny app has doesn't show colors
- Skipping a value between min and max values when using selectInput function in Shiny
- Get selected rows of Rhandsontable
- CDF - GoogleVis command for Cumulative Distribution plot
- R Shiny list2env
- How to pre-select rows in Shiny DT datatables
- Cannot produce ggplot2 in Shiny
- partly upload your input from a file
- Shiny: How to create a table/like user input
- How can I render an rChart in an Rmarkdown shiny document?
- The error when publishing a shiny app
- How to make the horizontal scrollbar visible in DT::datatable
- Selecting single row in shiny using DT
- switch() returns NULL in shiny on unicode characters coming from variable input only
Related Questions in SHINY-SERVER
- table command fails with shiny input variable
- R Shiny on Shiny server - how to access the app?
- Add/remove input fields dynamically by a button in shiny AND keep values
- how to use scrollx in shiny DT (renderDataTable)
- Shiny app filling output that depends on input does not work
- How sessions work in shiny-server?
- How to delete element from reactiveValues in shiny?
- Shiny-server with a proxy Not Working after wordpress multisite added as subdirectory
- Shiny Server periodic ERR_CONTENT_LENGTH_MISMATCH behind firewall
- R Shiny app - big mysql query results in page not loading
- RStudio Server - load file.RData Error : invalid multibyte string
- how to sum two column of subdata sold_that_area and Areatotal on the basis prod_nm
- Barplot in Shiny is showing 1 bar too few and strange skinny lines
- R shiny server: Error 500 can't set servers after they are sent?
- Check if interactive markdown is being run on Shiny Server
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)
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?
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.