R shiny 服务器与 url 参数断开连接
R shiny server disconnect with url parameters
我是 运行 AWS 上的闪亮服务器,并尝试根据用户输入设置 url 查询参数,并允许将 url 转发给其他人。下面的简化示例用于从复选框和滑块输入中检索值,并在单击提交按钮时将它们推送到 url 字符串,例如url:port?param1=1,2,3,4¶m2=0,100
我一开始也可以直接去 url:port?param1=1,2,3,4¶m2=0,100(模拟用户转发 url 给其他人),但是,一旦有一段时间已通过,此 link returns 一个 "disconnected from server" 服务器灰屏,日志状态 "Error getting worker: Error: The application exited during initialization."。
似乎服务器休眠了,只有我先去基地url,然后再访问包含参数的url,才会恢复。有没有办法以这种方式共享 url 并绕过首先需要访问基地 url?
# Load required libraries.
library(shiny)
# Shiny ui.
ui <- shinyUI(
fillPage(
# Add filter controls.
absolutePanel(
style='overflow-y:scroll; border-bottom: 1px solid #CCC; padding: 10px; background: #F5F5F5;',
fixed = TRUE,
draggable = FALSE,
top = 0,
right = 0,
bottom=0,
left=0,
width = '100%',
actionButton('submit', 'Submit'),
checkboxGroupInput('input1', 'Input 1', c(1,2,3,4), c(1,2,3,4)),
sliderInput('input2', 'Input 2', min=0, max=100, value=c(0,100), step=10),
verbatimTextOutput("output1", TRUE),
verbatimTextOutput("output2", TRUE)
)
)
)
# Shiny server.
server <- function(input, output, session){
# Observer to read url query string.
observe({
query <- parseQueryString(session$clientData$url_search)
param1 <- query$param1
param2 <- query$param2
output$output1 <- renderText(as.character(param1))
output$output2 <- renderText(as.character(param2))
})
# Observer for button click.
observeEvent(input$submit, {
param1 <- paste(input$input1, collapse=',')
param2 <- paste(input$input2, collapse=',')
string <- paste0('?param1=', param1, '¶m2=', param2)
updateQueryString(string, mode = 'push')
})
}
# Run app.
shinyApp(ui, server)
原来问题不是我想的那样,在其他地方发布 link 已将 & 转换为 HTML 符号,使查询字符串无效并导致应用程序失败。
我是 运行 AWS 上的闪亮服务器,并尝试根据用户输入设置 url 查询参数,并允许将 url 转发给其他人。下面的简化示例用于从复选框和滑块输入中检索值,并在单击提交按钮时将它们推送到 url 字符串,例如url:port?param1=1,2,3,4¶m2=0,100
我一开始也可以直接去 url:port?param1=1,2,3,4¶m2=0,100(模拟用户转发 url 给其他人),但是,一旦有一段时间已通过,此 link returns 一个 "disconnected from server" 服务器灰屏,日志状态 "Error getting worker: Error: The application exited during initialization."。
似乎服务器休眠了,只有我先去基地url,然后再访问包含参数的url,才会恢复。有没有办法以这种方式共享 url 并绕过首先需要访问基地 url?
# Load required libraries.
library(shiny)
# Shiny ui.
ui <- shinyUI(
fillPage(
# Add filter controls.
absolutePanel(
style='overflow-y:scroll; border-bottom: 1px solid #CCC; padding: 10px; background: #F5F5F5;',
fixed = TRUE,
draggable = FALSE,
top = 0,
right = 0,
bottom=0,
left=0,
width = '100%',
actionButton('submit', 'Submit'),
checkboxGroupInput('input1', 'Input 1', c(1,2,3,4), c(1,2,3,4)),
sliderInput('input2', 'Input 2', min=0, max=100, value=c(0,100), step=10),
verbatimTextOutput("output1", TRUE),
verbatimTextOutput("output2", TRUE)
)
)
)
# Shiny server.
server <- function(input, output, session){
# Observer to read url query string.
observe({
query <- parseQueryString(session$clientData$url_search)
param1 <- query$param1
param2 <- query$param2
output$output1 <- renderText(as.character(param1))
output$output2 <- renderText(as.character(param2))
})
# Observer for button click.
observeEvent(input$submit, {
param1 <- paste(input$input1, collapse=',')
param2 <- paste(input$input2, collapse=',')
string <- paste0('?param1=', param1, '¶m2=', param2)
updateQueryString(string, mode = 'push')
})
}
# Run app.
shinyApp(ui, server)
原来问题不是我想的那样,在其他地方发布 link 已将 & 转换为 HTML 符号,使查询字符串无效并导致应用程序失败。