我有一个简单的python程序,它应该将其数据推送到R Shiny应用程序中。 Shiny中的这些行解析了" GET"输入:
# Parse the GET query string
output$queryText <- renderText({
query <- parseQueryString(session$clientData$url_search)
eventList[query$eventid] <<- query$event
})
这适用于浏览器调用&#34; http://127.0.0.1:5923/?eventid=1223&event=somestring&#34;。如果我尝试在python中调用URL,我会得到一个&#34; Connection重置为#34;在R中没有任何内容添加到列表中。到目前为止我的Python代码:
request = urllib2.Request("http://127.0.0.1:5923/?eventid=1223&event=somestring")
test = urllib2.urlopen(request)
有谁知道如何使这项工作或有更好的解决方案将数据从外部推送到R Shiny应用程序?
感谢您的帮助!
答案 0 :(得分:2)
我使用带有httpuv的网页框的完整解决方案:
library(httpuv)
startWSServer <- function(){
if(exists('server')){
stopDaemonizedServer(server)
}
app <- list(
onWSOpen = function(ws) {
ws$onMessage(function(binary, message) {
#handle your message, for example save it somewhere
#accessible by Shiny application, here it is just printed
print(message)
ws$send("message received")
})
}
)
server <<- startDaemonizedServer("0.0.0.0", 9454, app)
}
stopWSServer <- function(){
stopDaemonizedServer(server)
server <<- NULL
}
希望这会有所帮助;)