【发布时间】:2018-08-29 08:30:57
【问题描述】:
我在 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 转发给其他人),但是,经过一段时间后,此链接返回“断开连接from server”服务器灰屏,并且日志状态“Error getting worker: Error: The application exited during initialization.”。
服务器似乎处于休眠状态,只有在我首先访问基本 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)
【问题讨论】:
标签: r shiny shiny-server