Shiny: рдХреНрд▓рд╛рдЗрдВрдЯ рдбреЗрдЯрд╛ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдкреНрд░реИрд▓ 2013  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rstudio/shiny

x-рдЕрдЧреНрд░реЗрд╖рд┐рдд-рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдореБрдЭрд╕реЗ рдмрд╛рдд рдХрд░реЗрдВред

Consult Team Advanced Medium Medium Type

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рддрдХ рдкрд╣реБрдВрдЪ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ?

рд╕рднреА 22 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ HTTP рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖рд▓реЗрдЦред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЖрдВрджреЛрд▓рди рд╣реБрдЖ рд╣реИ? @jcheng5

@coatless рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдХреА рдХреНрдпрд╛ рдЬрд╝рд░реВрд░рдд рдереА?

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЪрдордХрджрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╣реЛрдорд╡рд░реНрдХ рдЬрдорд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рд╣реИред рдРрдк рдЕрднреА рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдЖрдИрдкреА тАЛтАЛтАЛтАЛрдкрддреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рд╢рд╛рдЗрдиреА рдРрдк рдХреЛ рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╕рдмрдорд┐рдЯ рдХрд┐рдП рдЧрдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЖрдИрдкреА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рдХреЗ рддрд╣рдд рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд░реИрдВрдХ рдХрд┐рдП рдЧрдП рджреЛ рд╕рдмрдорд┐рд╢рди рдХреЗ рдХрд╛рд░рдг рдЕрдХрд╛рджрдорд┐рдХ рдЕрдЦрдВрдбрддрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдмреВрдд рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рдЕрдиреБрд░реЛрдз рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡реЛрдЯ рдЖрдИрдкреА

рдПрдХ рдФрд░ рд╡реЛрдЯред

рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк Connect рдпрд╛ Shinyapps.io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ

library(shiny)

ui_xfwd <- NULL

ui <- function(req) {
  if ("HTTP_X_FORWARDED_FOR" %in% ls(req)) ui_xfwd <<- req[["HTTP_X_FORWARDED_FOR"]]
  fluidPage(
    h3("result"),
    uiOutput("result")
  )
}

server <- function(input, output, session) {
  output$result <- renderUI({
    if (!is.null(ui_xfwd)) {
      div(
        p("HTTP_X_FORWARDED_FOR header present in UI:"),
        p(ui_xfwd)
      )
    } else {
      div(
        p("HTTP_X_FORWARDED_FOR header not present; here's the REMOTE_ADDR:"),
        p(session$request[["REMOTE_ADDR"]])
      )
    }
  })
}

shinyApp(ui, server)

рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд░реВрдБрдЧрд╛--рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдореЗрдВ рдПрдХ рдФрд░ рдордЬрдмреВрдд рдХрд╛рдордХрд╛рдЬ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

@ jcheng5 рдордЬрдмреВрдд рд╡рд┐рдзрд┐ рдкрд░ рдХреЛрдИ рдИрдЯрд╛?

рд╡рд┐рд▓рдВрдм рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред @bborgesr рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЬрдм рднреА рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рддрддреНрдХрд╛рд▓ рдкреВрд░реНрд╡рд╡рд░реНрддреА UI рдЕрдиреБрд░реЛрдз рдЙрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдерд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рддреНрдп рдирд╣реАрдВ рд╣реИ--рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдиреБрд░реЛрдз рд▓рдЧрд╛рддрд╛рд░ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рдХрд╛рд░рдг рди рд╣реЛрдВ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреИрдХ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИ рддреЛ UI рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛред

рдпрджрд┐ рдЖрдк рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЙрддреНрдкрдиреНрди рдпреВрдЖрдИ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред рдХрд╛рд╢ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ <input type="hidden"> рд▓рд┐рдП рдПрдХ рдЗрдирдкреБрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реЛрддреА, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

library(shiny)

ui <- function(req) {
  fluidPage(
    div(style = "display: none;",
      textInput("remote_addr", "remote_addr",
        if (!is.null(req[["HTTP_X_FORWARDED_FOR"]]))
          req[["HTTP_X_FORWARDED_FOR"]]
        else
          req[["REMOTE_ADDR"]]
      )
    )
  )
}

server <- function(input, output, session) {
  cat("The remote IP is", isolate(input$remote_addr), "\n")
}

shinyApp(ui, server)

рдпрджрд┐ рдЖрдк рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рддреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреАред

@ jcheng5 рдХреНрдпрд╛ рдХреЛрдИ рдИрдЯреАрдП рд╣реИ рдЬрдм рдЙрдЪрд┐рдд рдлрд┐рдХреНрд╕

@coatless рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдирдЬрджреАрдХреА рдирдЬрд░ /etc/shiny-server/shiny-server.conf рдЬреЛрдбрд╝рдирд╛):

whitelist_headers "x-forwarded-for";

рдлрд┐рд░ рдЖрдк рд╕рд░реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд╕реЗ session$req$HTTP_X_FORWARDED_FOR рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╢рд╛рдЗрдиреА рд╕рд░реНрд╡рд░ рдУрдкрди рд╕реЛрд░реНрд╕ (cc @alandipert @shalutiwari) рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдлрд░рд╡рд░реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ rstudio::conf рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдирд╣реАрдВ рд╣реЛрдЧреАред рддреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рджреЛ рдорд╣реАрдиреЗред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред

@ jcheng5 рдЙрддреНрдХреГрд╖реНрдЯред рдПрдХ рд╣рдЬрд╛рд░ рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрдд!

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, whitelist_headers рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛--рдЬрд┐рд╕ рдХреЛрдбрдкрде рдкрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкрд╣рд▓реЗ рд╕рд╣реА рд╣реЗрдбрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕реНрд╡рдпрдВ рдХреЛ рдиреЛрдЯреНрд╕ (рдФрд░ @alandipert):

  • рдиреЛрдб-http-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП xfwd рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ; рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ ред рдпрд╣ рдореМрдЬреВрджрд╛ X-Forwarded-For рд╣реЗрдбрд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ X-Forwarded-For рд╣реЗрдбрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рд┐рдореЛрдЯ-рдПрдбреНрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ) рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрди рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреЛ lib/proxy/http.js рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рд╕рдВрднрд╡рдд: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣рдореЗрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рдХреМрди рд╕реЗ рдЖрдИрдкреА рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░реЙрдХреНрд╕реА рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
  • рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХреЗ рд▓рд┐рдП X-Forwarded-* рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕реАрдзрд╛ рд╣реИ; рд╕реЙрдХрдЬреЗрдПрд╕ рдЗрди рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред lib/proxy/sockjs.js , createWebSocketClient рд╣реЗрдбрд░ рдХреЛ рдЗрд╕рдХреЗ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреЛ conn.$conn._conn.headers рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрд╛рд╣рд┐рд░ рд╣реИ рд╣рдореЗрдВ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди? рдЪрдордХрджрд╛рд░ рдХреЗ рдЕрдВрджрд░ рдЕрдиреБрд░реЛрдз рдЖрдИрдкреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рддрдХ рдкрд╣реБрдВрдЪ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ?

рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк Connect рдпрд╛ Shinyapps.io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ

library(shiny)

ui_xfwd <- NULL

ui <- function(req) {
...

рдХреНрдпрд╛ рдПрдХ рдЪрдордХрджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдЬрд╛рдирдХрд╛рд░реА (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ) рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдХреНрдпрд╛ рдПрдХ рдЪрдордХрджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдЬрд╛рдирдХрд╛рд░реА (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ) рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@jcheng5 (https://github.com/rstudio/shiny/issues/141#issuecomment-351857670) рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдПрдХ рдмрд╛рд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ)

рдореБрдЭреЗ @ jcheng5 (https://github.com/rstudio/shiny/issues/141#issuecomment-352564869) рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рд╡рд╛рддрд╛рд╡рд░рдг ( req рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ) рдХреЛ рдЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ -рдореЙрдбреНрдпреВрд▓ рдореБрдЦреНрдп ui рдлрд╝рдВрдХреНрд╢рди рд╕реЗред

рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ 127.0.0.1 рдХрд╛ рдорд╛рди рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рднрд▓реЗ рд╣реА рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╢реАрди рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдХреНрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ: https://groups.google.com/d/msg/shiny-discuss/9WcbS3E4Cfc/9hRS6VDyTxYJ

рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╛рдЪреЗ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рд╡реАрдПрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд RStudio рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдИрдкреА рд╣рдореЗрд╢рд╛ 127.0.0.1 рд╣реЛрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

zji90 picture zji90  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jiayi9 picture jiayi9  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

beginner984 picture beginner984  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Toniiiio picture Toniiiio  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wch picture wch  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ