mirror of
https://github.com/rstudio/shiny.git
synced 2026-02-10 14:45:12 -05:00
This refactor changes the level of abstraction where sub-apps are implemented. Sub-apps can basically be thought of as routing (previously called "proxying" which was way too confusing). A call comes in to /1e8f937a8934/ and it matches a sub-app path--we need to change the path from /1e8f937a8934/ to / for the duration of the sub-app's handling of the request. We used to do routing (nee proxying) at the httpuvCallback level, which added a lot of complexity because it meant we were compositing HTTP handlers at both the httpHandler level, and then again at the httpuvCallback level. This refactor changes it so nobody speaks the language of httpuv except at the very boundary of Shiny (webserver$createHttpuvApp), everything inside is either an httpHandler or a wsHandler. So whether you're combining or routing or whatever, everything now works the same way.