This PR contains a number of fundamental imrovements!
We supervise the rsession process, restarting it if it stops with a non zero exit code.
This is just good practice anyway, and it also allows 'projects' functionality in rstudio to work
We just proxy everything via '/rstudio/' rather than redirect people to the /proxy// URL.
This provides a number of benefits:
Users never see a 'Connection Refused' error, since we check to
make sure the process is up before forwarding them through
Consistent URL rather than exposing internal detail of what port
is being used!
Much better experience when switching projects - you get a small
message that says 'switching projects', then a spinner then it
exists!
Make sure that port is shared across requests, rather than a
new one being allocated per request! This worked before by
accident :)
Use trailing slash when accessing rstudio (so rstudio/ than
rstudio), to make relative URLs used by rstudio work properly.
This too worked before by accident
Don't make a HTTP request to check before each GET. This is
not necessary, since we know the process is up (since we watch
for SIGCHLD and delete the proc key if it is dead)
This PR contains a number of fundamental imrovements!
We just proxy everything via '/rstudio/' rather than redirect people to the /proxy// URL.
This provides a number of benefits: