2017-11-06 9 views
0

웹 응용 프로그램을 통해 연결된 장치의 시스템 로그를 읽는 방법을 찾고 있습니다. 기본적으로, 나는 사용자가 자신의 아이폰, 안드로이드, 태블릿 등을 연결하고 system/consoleLog 레벨에서 자신의 장치에서 발생하는 것을 볼 수 있기를 바랍니다. adb logcat와 유사합니다. 이것은 웹 응용 프로그램을 통해 이루어지며 로컬에 설치된 소프트웨어는 아닙니다. react/nodej를 사용하여 실현 가능합니까? 어떤 기술을 사용해야합니까?Nodej가 웹 응용 프로그램을 통해 연결된 장치의 시스템 로그를 읽을 수 있습니까?

답변

1

이 작업을 수행하는 데 필요한 몇 가지 구성 요소가 있습니다.

백엔드

  • 파일 모니터링 (기본 Node.js를 fs.watch)
  • 실시간 업데이트 (Socket.io)

프런트 엔드

  • 당신이 편안있어 모든 프레임 워크 , socket.io 클라이언트와 함께 React.js를 사용하고 있습니다.
+0

답변 해 주셔서 감사합니다. 나는 이미 socket.io를 사용하고 있으며이 프로젝트에 대해 반응을 보았 기 때문에 추천 한 옵션이 다행입니다. fs.watch가 디바이스 레벨 이벤트에 어떻게 액세스하는지 궁금합니다. 장치가 파일에 쓰고 nodeJS가 그 파일을보고 있습니까? – Steve

0

당신이하려는 것은 가능하지만 매우 제한된 의미입니다.

사용자는 로그 파일을 웹 응용 프로그램에 수동으로 업로드해야합니다.

javascript에서 FileReader API를 사용하여이를 수행하도록 요청할 수 있습니다. 여기에 demo page입니다.

업로드 된 파일을 수동으로 선택하고 웹 사이트를 제공해야합니다. 프로그래밍 방식으로 로그 파일의 경로를 설정하고 사용자가 알아 차리지 않고 호출하려고 시도하는 것은 불가능합니다.

웹 응용 프로그램을 통해 제공되는 모든 사항이 사용자 브라우저의 샌드 박스에서 실행되는 이유입니다.

명백한 보안상의 이유로 브라우저는 명백한 허락없이 임의의 웹 사이트가 개인 전화의 로컬 파일을 읽고 쓸 수 없도록합니다.

Node.js가 로컬 시스템 파일에 액세스하는 것과 같은 기능을 사용하려면 응용 프로그램이 로컬로 설치되어 "브라우저 샌드 박스"에서 실행되지 않아야하므로 Node.js가 도움이되지 않습니다.

이 정보가 도움이되기를 바랍니다. 만약 당신이 filereader API의 더 많은 예제를 원한다면 알려주고 당신을 위해 뭔가를 쓸 수 있습니다.

+0

답변 해 주셔서 감사합니다. 사용자가 기기에서 거의 실시간으로 발생하는 것을보고 해당 기기와 관련된 특정 데이터를 걸러 내기를 희망했습니다. 귀하의 응답을 기반으로, 이미 완료된 로그 파일을 업로드해야하므로 가능하지 않을 수 있습니다. 다시 한 번 감사드립니다! – Steve

+0

네가하려는 것은 네이티브 애플리케이션에 훨씬 더 적합 할 것이다. 그러나 사용자가 웹 사이트를 열 때마다 한 번 로그 파일에 대한 액세스 권한을 부여받은 사용자가 웹 사이트를 폐쇄 할 때까지 허락을 요청하지 않고 해당 파일을 100 번 이상 읽을 수 있습니다. – YAHsaves