2016-08-17 4 views
1

나는 R 반짝이 응용 프로그램에 데이터를 밀어 넣어야하는 간단한 파이썬 프로그램이 있습니다.푸시 데이터 받기 R 반짝이 응용 프로그램

# Parse the GET query string 
    output$queryText <- renderText({ 
    query <- parseQueryString(session$clientData$url_search) 
    eventList[query$eventid] <<- query$event 
    }) 

이 "http://127.0.0.1:5923/?eventid=1223&event=somestring"을 요구하는 브라우저에서 잘 작동 : 샤이니의이 라인은 "GET"입력을 구문 분석합니다. 파이썬에서 URL을 호출하려고하면 R에서 "피어로 연결 재설정"이 나타나고 목록에 아무 것도 추가되지 않습니다. 지금까지 내 파이썬 코드 :

request = urllib2.Request("http://127.0.0.1:5923/?eventid=1223&event=somestring") 
test = urllib2.urlopen(request) 

사람이 알고 있나요 어떻게이 작업을 진행 또는 R 반짝 응용 프로그램에 외부에서 데이터를 전달할 수있는 더 나은 솔루션을 제공하기 위해?

도움 주셔서 감사합니다.

+0

아니. – jdharrison

+0

반짝 이는 응용 프로그램은 클라이언트 - 서버 응용 프로그램이므로 Javascript를 실행해야합니다. 잠재적 후보자는 https://github.com/niklasb/dryscrape입니다. 또 다른 잠재적 인 해결책 http://www.seleniumhq.org/ –

+0

의견을 보내 주셔서 감사합니다. 나는 내 문제를 httpuv를 사용하고 websocket 서버를 만들어 해결했다. 여기에있는 예제는 다음과 같습니다. https://github.com/rstudio/httpuv/blob/master/demo/daemon-echo.R – tanktoo

답변

2

httpuv와 WebSocket을 사용하여 내 완벽한 솔루션 :이 도움이

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 
} 

희망)

당신의 빛나는 응용 프로그램과 상호 작용하는 클라이언트는 내 지식에`urllib2` 라이브러리가하는 자바 스크립트/WebSocket을 처리 할 필요가